如何在Symfony中强制重新加载路径?

如何在Symfony中强制重新加载路径?,symfony,Symfony,我正在编写一个脚本,动态更新现有路由,然后将这些路由转储到同一请求中的缓存文件中,供以后使用 我能够找到删除所有当前路由缓存文件的方法,然后在路由器上使用预热,但是当我使用getRouteCollection时,我仍然会在该请求中获得相同的旧路由,因为集合已经加载。当我试图通过使用自定义路由器和fource集合强制重新加载集合时,我得到了错误 不要在…中添加两次“abc_自定义”加载程序 我猜加载程序似乎会重新加载所有配置文件(不限于路由配置文件),这会导致错误 我想知道我是否在这个问题上采取了

我正在编写一个脚本,动态更新现有路由,然后将这些路由转储到同一请求中的缓存文件中,供以后使用

我能够找到删除所有当前路由缓存文件的方法,然后在路由器上使用预热,但是当我使用getRouteCollection时,我仍然会在该请求中获得相同的旧路由,因为集合已经加载。当我试图通过使用自定义路由器和fource集合强制重新加载集合时,我得到了错误

不要在…中添加两次“abc_自定义”加载程序

我猜加载程序似乎会重新加载所有配置文件(不限于路由配置文件),这会导致错误


我想知道我是否在这个问题上采取了错误的方法,或者是否有什么好办法来解决这个问题?

回答我自己的问题,最后我手动清除了路由缓存文件夹(这是针对SF3的)。我刚刚升级到SF4,需要更新我的代码,因为他们似乎已经更新了在SF4中生成路由缓存文件夹的方式。

重定向可以做到这一点,但您的方法有点脆弱。如果在您摆弄缓存时另一个请求进来,那么它可能会失败。动态路由有几种方法。考虑研究它们。你是正确的关于它是脆弱的,但是如果我在另一个文件夹中生成缓存,然后复制它们,那么它基本上与清除应用程序的缓存相同,并且可以最小化风险。我查看了DynamicCrout,但它似乎有点过分了,因为我不需要所有的力量(伴随着它的性能惩罚)。我正在查看它的代码,看看它如何处理添加到集合中的新路由,希望它能给出一些提示。