【发布时间】:2017-05-12 23:49:01
【问题描述】:
我正在编写一个动态更新现有路由的脚本,然后将这些路由转储到同一请求中的缓存文件以供以后使用。
我能够找出删除所有当前路由缓存文件的方法,然后在路由器上使用 warmUp,但是当我使用 getRouteCollection 时,我仍然会在该请求中获得相同的旧路由,因为集合已经加载。当我尝试通过使用自定义路由器和fource集合强制重新加载集合为null时,我收到错误
不要在 .... 中添加两次“abc_custom”加载程序。
我的猜测是加载器似乎重新加载了所有配置文件(不限于路由配置文件)并导致错误。
我想知道我是否对这个问题采取了错误的方法,或者是否有任何好的方法可以解决这个问题?
【问题讨论】:
-
重定向会做到这一点,但你的方法有点脆弱。如果在你玩弄缓存的时候有另一个请求进来,那么它可能会失败。动态路由有几种方法。考虑研究它们。
-
你说它脆弱是对的,但是如果我在另一个文件夹中生成缓存然后将它们复制过来,那么它基本上与清除应用程序的缓存相同并且可以将风险降到最低?我研究了 DynamicRouter ,但它似乎有点矫枉过正,因为我不需要所有的功能(这会带来性能损失)。我正在研究它的代码,看看它如何处理添加到集合中的新路由,希望它可以提供一些提示。
标签: symfony