Symfony parameters.yml nfs挂载的文件路径更改为本地

时间:2017-11-06 20:24:21

标签: symfony

在生产服务器上,我的nfs挂载路径正在转换为本地目录。有什么想法会导致这种情况吗?

parameters.yml

parameters:
    files_dir: /n/fs/web/doc_root/Files

services.yml

app.file_manager:
    class: AppBundle\Services\FileManager
    public: true
    arguments: ["%files_dir%"]

FileManager.php     

namespace AppBundle\Services;

class FileManager
{
    /**
     * @var string
     */
    private $filesDir;

    /**
     * FileManager constructor.
     * @param $filesDir
     */
    public function __construct($filesDir)
    {
        echo $filesDir;
        $this->filesDir = $filesDir;
    }
}

预期输出:/ n / fs / web / doc_root / Files

实际输出:/ opt / rh / httpd24 / root / var / www / sites / web / doc_root / Files

编辑:

所以看起来在容器类文件appProdProjectContainer.php中,files_dir参数被视为动态参数。

$dir = __DIR__;
for ($i = 1; $i <= 5; ++$i) {
    $this->targetDirs[$i] = $dir = dirname($dir);
}

...
case 'files_dir': $value = ($this->targetDirs[5].'/Files'); break;

这会破坏我的环境,因为在命令行上安装composer的上下文中__DIR__的输出是/ n / fs / web / doc_root,但是当通过apache运行时__DIR__的输出是/ opt / rh / httpd24 / root / var / www / sites / web / doc_root。我能够删除var / cache / prod目录并通过Web浏览器或curl访问该站点来重新生成容器类文件,它解决了我的问题。有更好的方法吗?

0 个答案:

没有答案