EC-CUBE3でプラグインを使う場合、ファイルやフォルダの作成が手間となっていました。
EC-CUBE3.0.13からは、プラグインの雛形をコンソールコマンドで簡単に生成できるプラグインジェネレーターが搭載されたので、今回はその使い方を紹介します。
作業環境は下記の通りです。
- EC-CUBE(3.0.16)
プラグインの作成
プラグインの雛形を作成するためには、下記のコマンドを実行します。
$ cd EC-CUBE3インストールディレクトリ
$ php app/console plugin:develop generate
コマンドを実行すると、いくつかの質問を訊かれるので、順番に答えて行きます。
[+]Please enter Plugin Name
Input[1] : プラグイン作成テスト
[+]Please enter Plugin Code (First letter is uppercase alphabet only. alphabet and numbers are allowed.)
Input[2] : TestSample
[+]Please enter version (correct format is x.y.z)
Input[3] : 1.0.0
[+]Please enter author name or company
Input[4] : chatlune
[+]Do you want to support old versions too? [y/n]
Input[5] : n
[+]Please enter site events(you can find documentation here http://www.ec-cube.net/plugin/)
Input[6] :
[+]Please enter hookpoint, sample:front.cart.up.initialize
Input[7] :
[+]Would you like to use orm.path? [y/n]
Input[8] : y
- 作成するプラグインの名前入力(日本語可)
- プラグインコードの入力
英数字のみ、最初の1文字目は半角英字の大文字を入力。 - プラグインバージョン
1.0.0など、管理できれば特に制約はない。 - 作成者
- EC-CUBE3.0.8以下も対応するか?
(yかnで答える) - 共通イベント設定
イベント名の一部入力で利用できるイベントが表示される。
一致するイベント名でなければ完了しない。
特に必要ない場合はenterでスキップできる。 - フロント、管理イベント設定
使い方は6と同じ。 - orm.pathの設定
プラグインでデータベースを使うためのorm.pathの設定、「y」を選ぶと追加される。
すべての質問に答えると、入力した内容の確認が表示されるので、問題なければ「y」を押します。
---Entry confirmation
[+]Plugin Name: プラグイン作成テスト
[+]Plugin Code: TestSample
[+]Version: 1.0.0
[+]Author: chatlune
[+]Old version support: No
[+]SiteEvents:
[+]hookpoint:
[+]Use orm.path: Yes
[confirm] Do you want to proceed? [y/n] : y
app/Pluginの配下にプラグインコードのディレクトリが作成されます。
[+]File system
this files and folders were created.
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/ServiceProvider
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Controller
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Form/Type
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Resource/template/admin
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/config.yml
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/PluginManager.php
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/ServiceProvider/TestSampleServiceProvider.php
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Controller/ConfigController.php
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Controller/TestSampleController.php
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Form/Type/TestSampleConfigType.php
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Resource/template/admin/config.twig
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/Resource/template/index.twig
- /Applications/MAMP/htdocs/eccube_test/app/Plugin/TestSample/LICENSE
[+]Database
Plugin information was added to table [DB.Plugin] (id=34)
Plugin was created successfully
最後に「管理画面>オーナーズストア>プラグイン>プラグイン一覧」の独自プラグインに表示されれば完了です。
まとめ
プラグインジェネレーターを使って簡単に雛形が作れるので、プラグイン作成の手間が省けとても便利に感じます。
他の記事でも、この方法で生成した雛形をベースにしたもので色々と書いていこうと思います。
新卒1年目のエンジニアです。
主にPHPを勉強中で、今まで学んできたことを記事にしていきたいと思っております。