EC-CUBE3 プラグインの作り方

EC-CUBE3のプラグインを作る方法を忘れた時とかのために、念の為に書いておこうと思います。

 

雛形を作る

雛形を作る方法は簡単でした。

プラグインジェネレータと言うのが用意されていたので、それで簡単に作れました。

プラグインジェネレータについて

上記のページに書いてあることを行えばできます。

「共通イベント設定」と「フロント、管理イベント設定」は、プラグイン仕様書の「共通フックポイント」「個別フックポイント」に書いてあるのを入力すれば良いです。

プラグイン仕様書

※「共通イベント」 = 「共通フックポイント」。「フロント、管理イベント設定」=「個別フックポイント」。

 

テーブルの追加をする場合

プラグイン用のテーブルを「CREATE TABLE」で作成した場合、エンティティ・リポジトリ・マイグレーションファイルを作る必要あると思います。

雛形を作るのと同じで、自動生成する方法が用意されています。

それが「プラグインジェネレータエンティティ」です。これを利用して生成しましょう。

以下のページを参考にすると、作ったテーブルを元にエンティティなどを生成させることができます。

既存のテーブルからエンティティクラスを作成

※プラグイン用にテーブルを作成する場合、テーブル名は「plg_」から始まるようにしましょう。その場合生成されないかもしれません。

ymlから作る方法もありますが、個人的には上記の方が楽だと思います。

マイグレーションファイルは、インストール時などに適用されるように、PluginManager.phpに以下を追記しましょう。

// テーブルを追加 enableなどに書く
$this->migrationSchema($app, __DIR__.'/Resource/doctrine/migration', $config['code']);

// テーブルを削除 uninstallに書く
$this->migrationSchema($app, __DIR__.'/Resource/doctrine/migration', $config['code'], 0);