去年リリースされたらしいECCUBE3のプラグインを開発していたのでいろいろなポイントを記載しておきたく思います。
- プラグイン開発前に
- フック一覧について
- イベントフックについて
- getArguments
- テンプレートのフックについて
- getParameters
- ルーティングについて
- 画面エラーメッセージの変更や表示の仕方
- ページを追加する方法
- ルーティング・Controller・twig追加後、DBレコード追加
- サーバ側制御(Controller)を追加する
- redirect
- ユーザ認証判定
- テンプレート読み込み(renderView)
- Ajaxを実装する
- テンプレート(twig)の記載方法について
- ifによる分岐
- forによるループ
- コメント
- URLリンク
- カートの中身を制御する(購入品目数・個数制御)
- ブラック会員
- プラグインインストール時
- データベース/テーブルの作成方法
- プラグインリリース時のzip圧縮の方法
- プラグイン削除時(初期化)
- メールテンプレート反映
- メール送信方法
- 主なENTITY
- Order, Customer, app->user, Shipping
1.プラグイン開発前に
先に、参考にさせて頂いたサイトを記載しておきます。
- EC-CUBEのプラグインを作る(3.0.9向け)
- [Done]EC-CUBE3のプラグインを2日でつくる – 1日目
- 【ECCUBE3】3.0.9で新しくなったプラグインのフックポイント
- 【EC-CUBE3】プラグインを有効化した時にブロックを生成するプラグインの作り方
「1.EC-CUBEのプラグインを作る(3.0.9向け)」が一番基本的で参考になりましたが、これをそのまま実装しても動きません。リンク先記事のコメントに記載されているようにメソッドの名前を修正してあげてください。
「onFormInitializeAdminProductCategory」→「onAdminProductCategoryInit」
DB・それのDIとしてのEntity定義や、プラグインのインストール・アンインストール時のDB制御の挙動を記載できます。
event.ymlと言うファイルでWordPressのアクションフック・フィルターフックのような定義をする個所のようです。
また、CategoryContentServiceProvider.php では、参考サイトではEntityの登録しかしていませんが、URIからのルーティングコントロールをユーザ定義できるようになっているようです。