[EC-CUBE4]:[error]proxyクラスを手動で削除

気づいたのはFTPからtwigファイルを削除して再アップしたことでシステムエラーが発生したこと。

ログイン画面すら出なくなってしまった。

ちなみにエラーはこちら。

ReflectionException

Property EccubeEntityOrder::$Transaction does not exist

product関連のphpファイルをいじった後に手動で商品詳細のtwigを消したのが原因。

今回は調べたらすぐ該当する事例があったので助かりました。

参考リンク(1):

proxy クラスを手動で削除するとシステムエラーが発生する · Issue #3470 · EC-CUBE/ec-cube
概要(Overview) 運用中、 proxy クラスを手動で削除するとシステムエラーになってしまう。 composer にて生成された Class Map が proxy クラスのみを参照しており、本体の Entity を検索してくれない...

参考リンク(2):

entityをclassmapの生成対象から除外する · chihiro-adachi/ec-cube@02a8af3
EC-CUBE official repository. Contribute to chihiro-adachi/ec-cube development by creating an account on GitHub.

解決方法はリンク(2)の方に記載されてるまま。

sshでログインして該当ディレクトリに移動、viでcomposer.jsonを編集

” exclude-from-classmap “:[

 ” ** / Test / ** “、 ” ** / Tests / ** “、 ” ** / test / ** “、 ” ** / tests / ** ” 

 ]

この部分を消して、

“exclude-from-classmap”: [ 

 “src/Eccube/Entity/**”, 

 “app/proxy/entity/**”, 

 “**/Test/**”, “**/Tests/**”, “**/test/**”, “**/tests/**” 

]

に書き換える。

保存して、キャッシュクリアしてExitすれば終わり。

コメント

タイトルとURLをコピーしました