メモ書きです。
気が付いたら / 分かったことが増えたら、随時更新。

全般
  • config.php などはなくなったので .env or .htaccess にて環境設定値を書く。
  • APP_DEBUG=1 にして デバックバーを活用する
  • 編集したいページが出てきたら @Route("/url", name="url") を探す
  • とりあえずキャッシュをクリアする
  • <meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}"> は消さない
コマンドライン
  • キャッシュクリア
    php bin/console cache:clear --no-warmup
  • Proxy クラスを生成
    php bin/console eccube:generate:proxies
  • SQLのアップデート 確認(実行の前にまずはこれで確認を)
    php bin/console doctrine:schema:update --dump-sql
  • SQLのアップデート 実行
    php bin/console doctrine:schema:update --dump-sql --force
リンク href の貼り方
  • {{ url('homepage') }}
  • {{ url('product_list') }}?category_id=1
  • {{ url('product_detail', {'id': 1}) }}
  • {{ url(eccube_config.eccube_user_data_route, {'route': 'hoge'}) }}
画像の呼び出し
  • {{ asset('assets/img/hoge.jpg') }}
使ってみたいプラグイン
  • 【簡単ページ追加】taba app CMSプラグイン for EC-CUBE 4
    WordPress を入れることなく、カスタムフィールド感覚なことができちゃう凄そうなプラグイン。使い勝手がよさそうで、めっちゃ使ってみたい。予算が下りず試せてませんが、販売価格以上の価値があると思います!
Twig 上で完結できるお手軽カスタマイズ
Twig 小技
  • トップページだけタイトルを変える
    {% if title == "TOPページ" %}{{ BaseInfo.shop_name }}|トップページのタイトルにありがちな決まり文句などを書く{% else %}{% if subtitle is defined and subtitle is not empty %}{{ subtitle }} - {% elseif title is defined and title is not empty %}{{ title }} - {% endif %}{{ BaseInfo.shop_name }}{% endif %}
  • HTML を出力したい
    |raw を付ける
  • |trans とは
    定義済みの言葉を翻訳してくれる。
    日本向けだと活躍する機会はない。
  • if 分で定義済みかどうか
    {% if hoge is defined %}
  • 変数に値をセットする
    {% set hoge = '' %}
  • 置換をする
    {{ 'ほげほげ'|replace({'げ': ''}) }}
    {{ 'ほげほげ'|replace({'げ': '', 'ほ': 'お'}) }}
  • Twig 関数の間に文字列を出力する
    {{ asset('assets/img/hoge-' ~ id ~ '.jpg') }}
  • ログイン状態を判定する
    {% if is_granted('ROLE_USER') %}

SQL
  • 一括で何かする際、外部キー制約で実行できないことが多いので、
    先頭に
    SET FOREIGN_KEY_CHECKS = 0;
    後ろに
    SET FOREIGN_KEY_CHECKS = 1;
    を付けるとよい