最近、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 キャッシュの内容全体を何らかの方法でリセットする必要がありますか?
これらのいずれかを行うための最良の方法についてはあまり確信が持てません。そのため、いずれかをお勧めする場合は、それを実装できるように正しい方向に向けてください。または、私が考えていなかった代替ソリューションはありますか?