Symfony 2中的路由缓存有多清楚

时间:2013-05-11 05:51:22

标签: symfony routing

我在所有路径中覆盖了set requirements key {_locale}的路由加载器(routing.loader),并设置了默认值。所有语言环境都保存在数据库中在数据库中保存新的语言环境后,我想要清除路由缓存(Matcher和Dumper缓存类),因为需要参数从DB加载。

感谢。

2 个答案:

答案 0 :(得分:6)

Symfony缓存的路由文件:

appDevUrlMatcher.php appDevUrlGenerator.php

在缓存目录中,var / cache / dev(prod)

删除这些文件

 protected function warmUpRouteCache() {

    $router = $this->get('router');
    $filesystem = $this->get('filesystem');
    $kernel = $this->get('kernel');
    $cacheDir = $kernel->getCacheDir();

    foreach (array('matcher_cache_class', 'generator_cache_class') as $option) {
        $className = $router->getOption($option);
        $cacheFile = $cacheDir . DIRECTORY_SEPARATOR . $className . '.php';
        $filesystem->remove($cacheFile);
    }

    $router->warmUp($cacheDir);
}

它对我有用。

答案 1 :(得分:0)

php app/console cache:clear
php app/console cache:clear --help

在清除缓存后执行其他缓存预热任务,以便在运行时提供重新生成的缓存 - 有关详细信息,请参阅详细帮助。