Memo

メモ > 技術 > CMS: ECCube > トラブル

トラブル
■プログラムに異常は見当たらないのにエラーになる 管理画面の「コンテンツ管理 → キャッシュ管理」からキャッシュを削除する 以下のコマンドで削除してもいい(むしろ、コマンドで削除する方が余計なデータが残らなくていいかも)
$ php bin/console cache:clear --no-warmup
■コンソールで「console list」を実行するとエラーになる 以下のように、コマンドの途中でエラーが表示される
# php bin/console list Symfony 3.4.42 (kernel: Eccube, env: dev, debug: true) Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -e, --env=ENV The Environment name. [default: "dev"] --no-debug Switches off debug mode. -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug 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\Ge nerator\Generator" or "Faker\Generator"? list [--raw] [--format FORMAT] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<namespace>]
公式パッケージ版ではtestsディレクトリが存在しないので、APP_ENVをdevにするとエラーになるらしい GitHub版から tests ディレクトリを取得して配置するか、app/config/eccube/packages/dev/generator.yaml を削除することで一応エラーは回避できる ただしそれなら、はじめからGitHub版を使っておくのが無難そう EC-CUBE4カスタマイズ - "bin/console"コマンドがエラーになる Attempted to load class "Generator" "Eccube\Tests\Fixture". https://umebius.com/eccube/bin_console_error_attempted_to_load_class/ ■データベースに接続できたりできなかったりする データベースへの接続パスワードに「$」が含まれていたときの挙動が怪しい .env でパスワードをシングルクォートで囲えばいいかと思ったが、それでも接続エラーになることがある Symfonyの仕様かもしれないが詳細は不明 ひとまず、データベースへの接続パスワードを変更して対応した ■正しいログイン情報のはずなのに認証できない 別環境のデータベースを取り込んだ時に発生する .env の ECCUBE_AUTH_MAGIC が暗号化のキーとして使われているので、この値を合わせないと正しく複合化できない よってこの値を、取り込み元と同じ値にしておく必要がある EC-CUBE4データ移行:会員データ・管理者データ(MySQL) | ITOBEN STYLE Blog https://itoben.com/blog/4277.html ■Twigファイルで日時を参照できない 日時を出力しようとすると致命的なエラーになることがある エラー内容はECCube設置ディレクトリ内の var/log/prod/site-2021-01-19.log などに出力されるので、確認すると 「Fatal Error: Object of class DateTime could not be converted to strin」 のようなエラーになっている 日付の値は、文字列型に自動変換されないとのこと 一例だが、以下のようにformatの指定を追加すると表示できるようになる 必要に応じて、Entity内でformatの指定を行っておくこともできる
Product.getProductCst().getTestDate() ↓ Product.getProductCst().getTestDate().format('Y-m-d')
【PHP】DateTime型の値を文字列(String)にする方法 - AppSeedのアプリ開発ブログ https://develop.hateblo.jp/entry/php-datetime-string ■.env の値に「#」を使用できない Symfony3.txt の「トラブル」を参照 上記「データベースに接続できたりできなかったりする」も似たような問題だが、これはECCube独自の問題かもしれない ■受注一覧からCSVをダウンロードできない ECCubeの不具合。最新版では解消されているらしい 商品・受注・顧客などのCSVダウンロードでメモリ不足エラー。 - Issue #4775 - EC-CUBE/ec-cube https://github.com/EC-CUBE/ec-cube/issues/4775 CSV出力時にメモリを使い切ってしまう問題を修正 by chihiro-adachi - Pull Request #4815 - EC-CUBE/ec-cube https://github.com/EC-CUBE/ec-cube/pull/4815 最終的に、以下の内容が本体に取り込まれているみたい。 ページングして取得するように修正 - EC-CUBE/ec-cube@0da7c07 https://github.com/EC-CUBE/ec-cube/commit/0da7c07755505ce96eaa2e279ec550dd84165c4f

Advertisement