Symfony:在config.yml中使用PHP全局变量时,无法清除缓存

时间:2016-07-01 14:13:05

标签: php console environment-variables symfony

在我的config.yml文件中,我导入了一个配置参数的params.php文件:

// app/config/params.php

<?php
$container->setParameter('base_name', $_SERVER['BASE']);

我将此参数用于VichUploader配置:

// app/config/config.yml
imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
    - { resource: params.php }

vich_uploader:
   db_driver: orm
   mappings:
        tag_image:
            uri_prefix:         %base_name%/../images/tags

它在我的项目中运行良好,但是当我想清除缓存时出现错误:

$ php bin/console cache:clear

enter image description here

我使用Symfony3。 我遵循了this topic的指导原则。

2 个答案:

答案 0 :(得分:2)

如果它只是在cli模式下没有出现错误,您可以这样修改params.php

// app/config/params.php

<?php
if (php_sapi_name() != "cli") {
    $container->setParameter('base_name', $_SERVER['BASE']);
}

IMO,如果你想设置外部参数,这就是你应该这样做的方式http://symfony.com/doc/current/cookbook/configuration/external_parameters.html

答案 1 :(得分:0)

&#34; BASE&#34;在控制台中调用脚本时,键不存在。您需要先检查params.php中是否存在此密钥。我不知道vich uploader bundle但我认为你不需要在cache clear命令上进行适当的配置。因此,如果基本密钥不存在,我认为您可以将空字符串设置为config。