我目前正在Symfony 2中编写一个自定义路由加载器,它将根据主配置文件中定义的一些配置选项生成路由。问题是Symfony缓存自定义路由加载器生成的路由。当配置文件发生变化时,我有办法更新缓存吗?
我在app/config/config.yml
admin:
entities:
- BlogBundle\Entity\Post
- BlogBundle\Entity\Comment
我的路由加载器读取配置文件并根据实体生成一些路由。现在问题是,一旦Symfony生成并缓存了这些路由,除非我手动调用php app/console cache:clear
,否则我无法更改它们。我的意思是如果我在配置中添加一个实体:
admin:
entities:
- BlogBundle\Entity\Post
- BlogBundle\Entity\Comment
- TrainingBundle\Entity\Training
我必须使用php app/console cache:clear
再次手动清除缓存,以便创建和缓存新路由。如果我更改配置,我希望路由缓存无效,这样对服务器的新请求将强制重新生成路由。
答案 0 :(得分:1)
选项1
如果您的自定义加载器类可以访问内核或容器(通过DI),则可以从该类调用console cache clear命令。
E.g。
export PS1=$Color_Off'$(git branch &>/dev/null;\
参考:Call a Command from a Controller
在有人指出之前免责声明;注射内核/ conatiner不被认为是#34;最好的实践",但可以是解决方案。
选项2
您也可以编写自己的控制台命令,扩展export PS1=$Color_Off'$(/usr/bin/git branch &>/dev/null;\
,只调用clear cache命令
参考; Call Command from Another
选项3
此answer还为您提供了另一个选项