【问题标题】:Change the location of the tmp directory for SwiftMailer in Symfony2在 Symfony2 中更改 SwiftMailer 的 tmp 目录位置
【发布时间】:2014-05-01 09:49:21
【问题描述】:

我的共享主机不允许我使用根 \tmp 目录。

我知道可以使用 Swift_Preferences 类更新临时目录的位置,但是,对于 Symfony2 自动加载的 SwiftMailer 实例,我该如何做呢?

有没有办法在我的 config.yml 中设置它?

我认为代码应该是:

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

但是如何/在哪里可以设置此配置?

【问题讨论】:

    标签: php symfony swiftmailer tmp


    【解决方案1】:

    有不止一种方法可以做到这一点。但是,我认为最好的地方是在“主”包的 boot 方法中。

    .../My/WebsiteBundle/MyWebsiteBundle.php:

    ...
    
    public function boot() {
        $tmpDir = $this->container->getParameter('my_website.swift_tmp_dir');
    
        \Swift_Preferences::getInstance()->setTempDir($tmpDir);
    }
    
    ...
    

    【讨论】:

      【解决方案2】:

      您可以通过 autoprepend.php 脚本修改整个参数:

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

      并将其设置在文档根目录的 .htaccess 中:

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

      【讨论】:

      • 我想在我的项目中进行理想的更改。而不是依赖系统配置。
      • .htaccess 应该保留在您的项目目录中。主要优点是,这会修改每个依赖于 sys_get_temp_dir() 而不仅仅是 swiftmailer 的库的 tmp 目录。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2023-01-11
      • 1970-01-01
      • 2020-04-21
      相关资源
      最近更新 更多