「やっとか!」と云う反応もありそうですが、やっと自作プラグインについての話を進めたいと思います。
と、云うことで今回はプラグインの開発手順についてです。
EC-CUBE 2系の頃とは大分変変更されているだろうなぁ、とは思いつつ進めて行きたいと思います。
なお、プラグイン仕様書は大事ですね。
しっかりダウンロードして中を確認しておきましょう。
・
・
・
さて、作成を試してみようとしたところ、「3.0.9」の時点で素敵な機能が追加されている旨を聞きました。
プラグイン作成に当たり、本体の所定の位置に必要なファイルを設置するだけで開発が進められるとのことです。
これは開発が楽になりそうですね。
何より、通常のカスタマイズ依頼の場合には重宝しそうな機能ですね。
それでは、さっそく試してみましょう。
1.
まずはプラグインを作成するための場所ですが、以下の場所にプラグイン用のフォルダを作成するようです。
/app/Plugin
今回はテスト用の為、「NakwebTest001」と云うフォルダを作りましたので、以下の様なパスになります。
/app/Plugin/NakwebTest001
※今回はテストですが「命名規則」が存在しているため、公開する場合は注意が必要です。
2.
フォルダを作成した後は、プラグインの設定ファイルを作成します。
設定ファイルは作成したフォルダ以下に「config.yml」ファイルを作成する形になります。
作成するファイルの中身は以下の項目を作成します。
・name
※ 必須項目
作成するプラグイン名です。命名規則に従って適当な名前として下さい。
・version
※ 必須項目
インストール後に表示されるバージョンになります。
作成するプラグインのバージョン管理を行う際にはカウントアップする形ですね。
・code
※ 必須項目
オーナーズストア内でプラグインを識別するコードですね。
英数字のみを使用しオーナーッストアにて一意のコードとする必要があります。
・event
※ eventを追加する場合は必須項目
イベントのファイル名を追加します。
記載すると設定した「{EventName}.php」を読み込むようになります。
・service
※ 必須項目
イベント以外のロジックを読込させる場合に指定します。
記述したファイルを「ServiceProvider」フォルダから読込するようです。
・orm.path
※ テーブルを追加する場合は必須項目
プラグインにてテーブル追加する場合に必須となるようです。
今回はテスト環境の為、以下の様な設定をしてみました。
name: EC-CUBE3 分室 テストプラグイン 001 code: NakwebTest001 version: 0.0.1
本来であれば「PluginManager.php」も作成する必要があるのですが、一度管理画面を見てみましょう。
さて、EC-CUBE の管理画面から以下のメニューに移動します。
「オーナーズストア > プラグイン > プラグイン一覧」
お~、ありました。
未登録プラグインとして今回作成した「config.yml」の内容が反映されています。
これであれば、ニッチな改造などはプラグイン化をしないまま作業が出来そうですね。
実際には実運用を行ってみないと何とも言えませんが、とりあえずは成功の様です。
無事に成功しましたので、今回は以上とさせて頂きます。
次回は何か簡単なプラグイン処理を実行できればと思います。
それとも、プラグインのパッケージ化を先にやった方がいいのかなぁ・・・
————————————————————-
※追記 2016/11/19
————————————————————-
「上記内容ではインストールされていない『未登録プラグイン』のままです」との指摘を頂きました。
不正確な情報を記載してしまい誠に恐縮です。
インストールを行う方法を追記させて頂きます。
EC-CUBE3 のプラグインとして動作させるには、もう一つコマンドを実行する必要があります。
コマンドの実行方法は以下の通りです。
1.
EC-CUBE3 をインストールしたサーバーにコンソールでログインします。
2.
インストールしたディレクトリにて以下のコマンドを実行します。
php app/console plugin:develop install --code <対象のプラグインコード>
3.
インストールしたプラグインを有効にする場合は以下のコマンドを実行します。
php app/console plugin:develop enable --code <対象のプラグインコード>
4.
最後に、EC-CUBE の管理画面から以下のメニューに移動します。
「オーナーズストア > プラグイン > プラグイン一覧」
確認してみると「未登録プラグイン」から「独自プラグイン」の位置に移動しています。
これでテスト環境で実行可能な簡易インストールが完了する形です。
前回は何も処理しないプラグインの為「未登録プラグイン」のままで問題が無いのかと考えておりました。
誠に浅はかでした・・・