コマンドラインからプラグインをインストールしたり、キャッシュを削除したりと、開発者にとって非常に便利なbin/consoleコマンドですが、公式パッケージ版ではAPP_ENVをdevに変更すると使用できないという不具合が存在します。(EC-CUBE4.0.2時点)
bin/console list などを事項しようとするとAttempted to load class “Generator”というエラーが発生します。
In getGeneratorService.php line 8:
Attempted to load class “Generator” from namespace “Eccube\Tests\Fixture”.
Did you forget a “use” statement for e.g. “Symfony\Bundle\MakerBundle\Generator”, “Sensio\
Bundle\GeneratorBundle\Generator\Generator” or “Faker\Generator”?
これはパッケージ版にはtestsディレクトリが存在しないにも関わらず、APP_ENV=devの場合、tests内のファイルを使用しようとするためです。
解決方法1
ですので、最も簡単な解決方法はgithubからtestsディレクトリをダウンロードしてプロジェクトのルートに配置することです。
各自Gitのタグを利用して使用バージョンに合ったtestsをご利用ください。
https://github.com/EC-CUBE/ec-cube
testsディレクトリを配置することでbin/consoleスクリプトがエラーなく実行できるようになります。
解決方法2
app/config/eccube/packages/dev/generator.yamlを読み込まないよう削除するか、修正する。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。