X-Forwarded-Forから実クライアントIPを取るときは右から数える EC-CUBE4.3 .env CDN PHP Symfony セキュリティ リバースプロキシ X-Forwarded-For(XFF)の先頭に書かれたIPは、リクエストの送信者が自由に書き換えられます。実際のクライアントIPは、自分で管理しているプロキシが付け足した分を右から取り除き、残った一番右の値として決めま […]
EC-CUBE4のTraitに定数を書けない時の定数クラスの置き場所 EC-CUBE4 Entity PHP Trait 定数 EC-CUBE4でEntityに項目を追加するときは、本体のクラスを触らずCustomize配下のTraitに書くのが原則です。ここで困るのが、種別や区分のように「取りうる値が決まっている項目」を追加する場合です。値の文 […]
EC-CUBE 4に手動INSERTする日時列はUTC_TIMESTAMP()で入れる EC-CUBE4 Doctrine MySQL PHP EC-CUBE 4のテーブルにSQLで直接INSERTする時、create_dateやupdate_dateにはNOW()ではなくUTC_TIMESTAMP()を使います。EC-CUBEは日時をUTCで保存し、読み出す時 […]
Doctrineで特定エンティティだけのCREATE TABLE文を取り出す方法 EC-CUBE4 Doctrine PHP Symfony EC-CUBE 4で新しいテーブルを追加した時、本番に流すCREATE TABLE文はeccube:schema:update –dump-sqlで取るのが基本です。ところがこのコマンドはエンティティとDBの差分を全部 […]
EC-CUBE 2系から4系へ会員パスワードを引き継げる条件と設定 EC-CUBE4 PHP 会員関係 移行 EC-CUBE 2系から4系へ移行するとき、会員のパスワードは条件を満たせばそのまま引き継げます。鍵になるのは「旧サイトの AUTH_MAGIC を取得できるか」と「2系側のハッシュ形式を正しく把握できているか」の2点で […]
No loader is registered for the format エラーの原因と対処 EC-CUBE4 500エラー PHP Symfony 翻訳 EC-CUBE 4のフロントが全ページ500になり、ログには次の例外だけが記録されている状態の対処です。 No loader is registered for the “yaml_old” format when lo […]
Symfony 6化したEC-CUBEでCSVダウンロードがヘッダ1行とHTMLエラーになる原因 EC-CUBE4.3 CSV出力 PHP Symfony バージョンアップ EC-CUBE 4.0のカスタマイズを4.2 / 4.3(Symfony 6)へ移植すると、受注CSVや会員CSVのダウンロードが「1行目のヘッダだけ正しく、2行目以降がHTMLのエラーページ」というファイルになることが […]
EC-CUBE 4でAPP_ENVを環境変数に渡すと.envが読まれない仕組みと対処 EC-CUBE4.3 .env Docker PHP EC-CUBE 4の index.php は、環境変数 APP_ENV が渡っていると .env を読みません。DockerのComposeで env_file に APP_ENV=prod を書いた環境では、.env […]
EC-CUBEのMySQL 5.7をutf8mb4に一括変換する前に確認する3つの上限 EC-CUBE4.3 Doctrine MySQL PHP データベース バージョンアップ EC-CUBE 4.0系から引き継いだ utf8_general_ci のDBを、4.3の標準である utf8mb4_bin にまとめて変換するのは、MySQL 5.7でも ALTER TABLE … CONVERT […]
EC-CUBE 4.2以降のschema:updateでdecimal列の差分が消えない原因と対処 EC-CUBE4.3 Doctrine PHP データベース バージョンアップ EC-CUBE 4.2以降(DBAL 3系)で bin/console eccube:schema:update –dump-sql を実行すると、dtb_order.subtotal などdecimal列の CHAN […]