我有一个脚本可以更改Symfony2配置,并且需要在继续之前了解新配置(特别是添加dbal连接).有没有办法在脚本执行期间强制重新加载配置?
ale*_*oze 16
更新:您无法重新加载配置,但您可以即时设置参数,请参阅第二个"更新"段落
在Symfony2中实际上不可能做到这一点.
在生产模式下,所有内容(甚至是配置)都被缓存,因此您必须清除缓存
app/console cache:clear --env=prod --no-debug
(可能后跟一个app/console cache:warmup --env=prod --no-debug)
重新加载配置.在开发模式下,你可以尝试用shutdown()后跟一个 boot()来自Symfony\Component\HttpKernel\Kernel或可能loadClassCache-但所有这一切是不是真的是你想要的.
究竟对配置文件进行了哪些更改?也许您应该为不同的环境使用不同的文件,或者考虑使用任何其他方法来获取这些更改(通过简单的Web服务,甚至是从Controller中读取的静态文件).
更新:
我发现你可以通过动态设置容器配置参数
$container->setParameter('parameter', value);
Run Code Online (Sandbox Code Playgroud)
看看Symfony2文档.
我的回答可能很晚才到,但对其他人可能有用.
"prod"环境的Symfony缓存存储在"app/cache/prod /"文件夹中并包含许多内容(在"twig /"子文件夹中用PHP翻译的Twig模板,"annotations /"子文件夹中的注释和...配置参数,app*ProjectContainer.php文件,以及许多其他内容).
所以你可以做的是:当配置脚本更改parameters.yml时,它也可以删除appProdProjectContainer.php.下一次使用Symfony应用程序的用户将面临更长的响应时间,但新配置参数将被考虑并缓存.
| 归档时间: |
|
| 查看次数: |
19453 次 |
| 最近记录: |