use*_*802 11 php caching symfony
我正试图通过我的应用程序清空Symfony 2缓存,就像我在做的那样php app/console cache:clear.
我尝试了很多不同的解决方案,例如:
//solution 1
$process = new Process('php '.__DIR__.'/../../../../../app/console cache:clear');
$process->setTimeout(3600);
$process->run();
//solution 2
$input = new StringInput(null);
$output = new NullConfigurationOutput();
$command = new CacheClearCommand();
$command->setContainer($container);
$command->run($input, $output);
//solution 3
$container->get('cache_clearer')->clear($container->getParameter('kernel.cache_dir'));
Run Code Online (Sandbox Code Playgroud)
我也尝试rm -Rf过缓存文件夹.
他们都没有完全正常工作,因为我遇到了很多错误.以下错误是我正在解决方案2(这似乎是最好的):
无法启动会话:已由PHP启动(已设置$ _SESSION).
似乎Symfony正在尝试重建页面或在渲染过程中重新启动应用程序.
怎么会有人通过一些PHP代码清除缓存?
编辑:由于我的路由系统,我实际上正在尝试重新生成缓存.我已经制作了一个包含symfony 2路径的捆绑包并添加了为SEO目的重写它的可能性(例如:我有一个指向/ category的front_category路由,使用此捆绑包我可以将其重写为category-seo-optimized. HTML).
如果我在需要特定参数的路线上,例如ID,我需要为它做一个特殊的路线才能重写它.例如,对于/ category/3我需要创建一个名为category_3和..的路由,为了让symfony知道我已经改变了路由系统,我必须清除缓存.
我刚刚遇到的问题完全相同.对我来说最简单的解决方案是:
use Symfony\Component\Filesystem\Filesystem;
Run Code Online (Sandbox Code Playgroud)
在控制器中:
$fs = new Filesystem();
$fs->remove($this->container->getParameter('kernel.cache_dir'));
Run Code Online (Sandbox Code Playgroud)
这将删除当前环境的缓存目录.
| 归档时间: |
|
| 查看次数: |
9442 次 |
| 最近记录: |