我最近将我的 Symfony2 应用程序升级到 2.1 并将其迁移到新服务器,所以我想我应该配置Capifony以简化部署。一切都很好,除了它现在不使用 APCLoader,所以我不得不暂时注释掉它,直到它被排序。
以下是来自的相关代码app.php
:
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
// Use APC for autoloading to improve performance.
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
// with other applications also using APC.
$loader = new ApcClassLoader('my_prefix', $loader);
$loader->register(true);
问题是'my_prefix'
每个版本都不是唯一的,因此它最终会尝试查找属于以前版本的缓存文件,这些文件可能存在也可能不存在。这显然是一个非常大的问题!
什么是最好的解决方案?我是否应该以某种方式编写一个 capifony 将在部署之前运行的任务,将前缀更改为独特的东西,例如#{latest_release}
变量?还是我应该在每次部署后以某种方式重置 APC 缓存的全部内容?
我不太确定做这些事情的最佳方法,所以如果你推荐其中一个,你能指出我正确的方向来实现它吗?或者有没有我没有想到的替代解决方案?