concrete5 で Doctrine プロキシクラスが存在しないエラーの解消方法

菱川拓郎
菱川拓郎

concrete5 サイトの引越しの際などに下記のようなエラーが発生することがあります。

Doctrine\Common\Proxy\AbstractProxyFactory::getProxyDefinition(): Failed opening required '/Users/hissy/.valet/Sites/foo/application/config/doctrine/proxies/__CG__ConcreteCoreFileStorageLocationStorageLocation.php' (include_path='/Users/hissy/Sites/foo/concrete/vendor:.:')

これは、concrete5 が使用しているデータベースライブラリの Doctrine が使用するファイルが /application/config/doctrine/proxies 以下に生成されるのですが、これがなくなったことにより生じるエラーです。

これを解消するにはコマンドラインから

concrete/bin/concrete5 orm:generate-proxies

と実行して、プロキシクラスの再生成を行ってください。

プロジェクトをGitリポジトリとして管理している場合などは、デプロイスクリプトにあらかじめ組み込んでおくと良いですね。