プラグインの雛型を簡単に作成できるプラグインジェネレータについて説明します。
Edit me

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

EC-CUBE3.0.13をご利用の方はこちらをご確認ください。

EC-CUBE3.0.13よりプラグインの雛形を生成するプラグインジェネレータが搭載され、プラグイン開発者にとって手間となっていたファイルやフォルダの準備をコンソールコマンドを使って簡単に生成できるようになります。

プラグインの雛形を作成する

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

プラグイン開発する際に手助けをするためにプラグイン開発用コンソールコマンドというものが用意されています。 プラグインジェネレータは

php app/console plugin:develop

に対して新たにパラメータを用意しています。 パラメータの種類 は--helpで確認できます。

php app/console plugin:develop --help

プラグインジェネレータの使い方

プラグインの雛形を作成するためのプラグインジェネレータコマンドは

php app/console plugin:develop generate

を実行します。

プラグインジェネレータコマンド実行時の内容について

generateコマンドを実行すると問い合わせ形式で、プラグイン作成時に必要となる情報が設定できます。

問い合わせ内容を以下に説明します。途中で終わらせたい場合、quitを入力してください。
必須以外の箇所については何も入力せずにenterを押すとスキップします。

プラグイン名の入力

作成するプラグイン名を入力します。

------------------------------------------------------
---Plugin Generator
---[*]You can exit from Console Application, by typing quit instead of typing another word.
------------------------------------------------------

[+]Please enter Plugin Name
Input[1] : 

プラグインコードの入力

作成するプラグインコードを入力します。英数字のみ入力可能で1文字目は必ず半角英字の大文字で入力してください。
同一のプラグインコードが存在していた場合、利用できません。

[+]Please enter Plugin Code (First letter is uppercase alphabet only. alphabet and numbers are allowed.)
Input[2] : 

プラグインバージョン

プラグインのバージョンを入力します。

[+]Please enter version (correct format is x.y.z)
Input[3] : 

作成者

ファイルヘッダに設定する作成者情報を入力します。

[+]Please enter author name or company
Input[4] : 

EC-CUBE3のサポート有無

EC-CUBE3.0.8以下と3.0.9以上でプラグイン機構に改修が入りました。3.0.8以下も対応するプラグインを作成する場合、yを入力し、古いEC-CUBE3はサポートしないのであれば n を入力してください。

[+]Do you want to support old versions too? [y/n]
Input[5] : 

共通イベント設定

EC-CUBE3で用意している共通イベント名を指定します。イベント名は大量にあるため、イベント名の一部を入力してenterを押すと利用可能なイベントが画面上に表示されます。
このコマンドでは一致するイベント名を入力しないと完了しません。

[+]Please enter site events(you can find documentation here http://www.ec-cube.net/plugin/)
Input[6] : 

appのみを入力し、enterを押します。

[+]Please enter site events(you can find documentation here http://www.ec-cube.net/plugin/)
Input[6] : app
[!] No results have been found
--- there are more then one search result
 - eccube.event.app.request
 - eccube.event.app.controller
 - eccube.event.app.response
 - eccube.event.app.exception
 - eccube.event.app.terminate

[+]Please enter site events(you can find documentation here http://www.ec-cube.net/plugin/)
Input[6] : 

イベント名にappが含まれているイベントが一覧表示されます。

例えばeccube.event.app.requestを入力するとイベントが追加されます。イベントがこれ以上不要な時や必要ない場合、何も入力せずにenterを押してください。

[+]Please enter site events(you can find documentation here http://www.ec-cube.net/plugin/)
Input[6] : eccube.event.app.request
--- your entry list
 - eccube.event.app.request

--- Press Enter to move to the next step ---
[+]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] : 

orm.pathの設定

プラグインでデータベースを扱うためのorm.pathの設定を行います。 yを選ぶとorm.pathが追加されます。

[+]Would you like to use orm.path? [y/n]
Input[8] : 

確認

入力した内容を確認します。問題なければyを入力します。

---Entry confirmation
[+]Plugin Name:  テストプラグイン
[+]Plugin Code:  TestPlugin
[+]Version:  1.0.0
[+]Author:  Test
[+]Old version support:  No
[+]SiteEvents: 
  eccube.event.app.request
[+]hookpoint: 
  front.cart.up.initialize
[+]Use orm.path:  Yes

[confirm] Do you want to proceed? [y/n] : 

完了

完了するとプラグインがapp/Plugin配下にプラグインコードのディレクトリが作成され、そこに必要なファイルが配置されます。

[+]File system

 this files and folders were created.
 - ECCUBEROOT/app/Plugin/TestPlugin
 - ECCUBEROOT/app/Plugin/TestPlugin/ServiceProvider
 - ECCUBEROOT/app/Plugin/TestPlugin/Controller
 - ECCUBEROOT/app/Plugin/TestPlugin/Form/Type
 - ECCUBEROOT/app/Plugin/TestPlugin/Resource/template/admin
 - ECCUBEROOT/app/Plugin/TestPlugin/config.yml
 - ECCUBEROOT/app/Plugin/TestPlugin/PluginManager.php
 - ECCUBEROOT/app/Plugin/TestPlugin/ServiceProvider/TestPluginServiceProvider.php
 - ECCUBEROOT/app/Plugin/TestPlugin/Controller/ConfigController.php
 - ECCUBEROOT/app/Plugin/TestPlugin/Controller/TestPluginController.php
 - ECCUBEROOT/app/Plugin/TestPlugin/Form/Type/TestPluginConfigType.php
 - ECCUBEROOT/app/Plugin/TestPlugin/Resource/template/admin/config.twig
 - ECCUBEROOT/app/Plugin/TestPlugin/Resource/template/index.twig
 - ECCUBEROOT/app/Plugin/TestPlugin/event.yml
 - ECCUBEROOT/app/Plugin/TestPlugin/TestPluginEvent.php
 - ECCUBEROOT/app/Plugin/TestPlugin/LICENSE

[+]Database
 Plugin information was added to table [DB.Plugin] (id=5)

 Plugin information was added to table [DB.PluginEventHandler] (inserts number=1) 
Plugin was created successfully

以上でプラグインの雛形が完成します。

プラグインの雛形を作成したら管理画面より、

[オーナーズストア]->[プラグイン]->[プラグイン一覧]

の「独自プラグイン」欄に作成したプラグインが表示されているか確認してください。

表示されていればプラグインが無事に完成されています。

EC-CUBE3.0.12以下をご利用の方

EC-CUBE3.0.12以下をご利用の方にはプラグインジェネレータというプラグインの雛形を作成するプラグインもあります。
そちらの説明はこちらを参照してください。