2014-05-01 3 views
0

내 공유 호스팅에서 root \ tmp 디렉토리를 사용할 수 없습니다.Symfony2에서 SwiftMailer의 tmp 디렉토리 위치를 변경하십시오.

임시 디렉토리의 위치를 ​​Swift_Preferences 클래스를 사용하여 업데이트 할 수 있다는 것을 알고 있습니다 만, Symfony2가 자동로드 한 SwiftMailer 인스턴스의 경우 어떻게해야합니까?

내 config.yml에서 설정하는 방법이 있습니까?

나는 코드가 있어야한다고 생각 :

\ Swift_Preferences ::의 getInstance() -> setTempDir ($ newTempDir를);

하지만 어떻게이 설정을 구성 할 수 있습니까?

<?php 
putenv('TMPDIR=/var/www/yourdir/tmp'); 

을하고 문서 루트에 htaccess로에서 설정 :

답변

-1

당신은 autoprepend.php 스크립트를 통해 모든 매개 변수를 수정할 수 있습니다

php_value auto_prepend_file /var/www/yourdir/htdocs/autoprepend.php 
+0

내가 이상적으로 내 프로젝트 내부의 변경을하고 싶습니다. 오히려 시스템 구성에 의존하기보다는. –

+0

.htaccess는 프로젝트 디렉토리에 있어야합니다. 가장 큰 장점은 swiftmailer뿐만 아니라 ['sys_get_temp_dir()'] (http://us.php.net/sys_get_temp_dir)에 의존하는 모든 라이브러리에 대한 tmp 디렉토리를 수정한다는 것입니다. –

1

한 방법보다 더있다 이것을하기 위해. 그러나, 나는 그 최고의 장소가 boot "main"번들의 내부에있을 것이라고 생각합니다.

.../내/WebsiteBundle/MyWebsiteBundle.php :

... 

public function boot() { 
    $tmpDir = $this->container->getParameter('my_website.swift_tmp_dir'); 

    \Swift_Preferences::getInstance()->setTempDir($tmpDir); 
} 

... 
관련 문제