最新EC-CUBE3.0活用虎の巻~プラグイン徹底解剖

第4回 EC-CUBE3.0のプラグインをつくってみよう!

この記事を読むのに必要な時間:およそ 3 分

前回は,EC-CUBE3.0のプラグイン仕様について簡単にご紹介しました。

今回は,公式に提供されているプラグインをソースコードレベルで追いかけ,実際の作り方を解説していきます。

第2回EC-CUBE 3.0のプラグインを試してみようで紹介した,関連商品プラグインを参考に,具体的に中身を見ていきます。「関連商品プラグイン」のソースコードはGitHub上に公開されていますので,あわせて参照してください

プラグインの構造

まずは,プラグインのディレクトリ,ファイル構造を確認してみましょう。以下のような構成になっています。

プラグインのディレクトリ構造

プラグインのディレクトリ構造

EC-CUBE本体とほぼ同じ構成になっていることがわかります。多くのファイルが有りますが,この中でプラグインを作る上で必須となるファイルは以下の2ファイルです。

  • config.yml
  • PluginManager.php

この2ファイルが,プラグインとして必要な最低限のファイルです。その他のファイルはプラグインごとの何らかの処理をするためのファイルであったり,テンプレートファイルや画像ファイル等となりますので,それぞれのプラグインにより追加されるファイルということになります。

それでは次項より各ファイルの詳しい内容を見ていきます。

プラグインの設定ファイル:config.yml

「config.yml」はプラグインの設定ファイルです。プラグイン名やバージョンなど,プラグインに関する情報を記載するほか,データベースの定義ファイルのパスや,ServiceProviderのクラス名, フックポイントを実装するクラス名を指定します。

リスト config.yml

name: 関連商品プラグイン
code: RelatedProduct
version: 0.0.1
service:
    - RelatedProductServiceProvider
orm.path:
    - /Resource/doctrine
event: Event

上記で必須の項目は,name/code/versionの3点です。以下に各項目の設定内容を記載します。

 各項目の設定内容

項目名必須・任意概要
name必須プラグイン名を記載します
code必須プラグインの識別コード。他のプラグインと重複することも考慮して,開発者のハンドルネームなどをプレフィクスとしてつけておくのが望ましいでしょう
version必須プラグインのバージョン。EC-CUBE本体のバージョン表記の形式(xx.yy.zz)で記載することが推奨されます
service任意プラグインのServiceProviderのクラス名を記載します。app/Plugin/[code]/ServiceProvider/[service].phpが読み込まれます
orm.path任意プラグインでデータベースのテーブルを追加する場合に必要です。app/Plugin/[code]/[orm.path]が,doctrineの定義ファイルの探索パスとして追加されます
event任意プラグインでフックポイントを利用する場合,必要になります。Eventのクラス名を記載します。app/Plugin/[code]/[event].phpが読み込まれます

プラグインのインストーラ:PluginManager.php

「PluginManager.php」は,プラグインのインストーラです。このクラスには,プラグインのインストール処理やアンインストール処理を記述することができます。プラグインでデータベースのテーブルを追加したり,リソースファイル(画像やCSS,JSファイルなど)を設置する場合,PluginMagnager.phpで実装する必要があります。

実装できるメソッドは以下のとおりです。

  • install:プラグインのインストール時に実行される
  • uninstall:プラグインの削除時に実行される
  • enable:プラグイン有効時に実行される
  • disable:プラグインの無効時に実行される
  • update:プラグインの更新時に実行される

実行タイミングはメソッド名の通りなので特に迷うところはないかと思いますが,プラグインの管理画面と照らしあわせて,どのタイミングで実行されるかみてみましょう。

管理画面

管理画面

プラグインの設定

プラグインの設定

著者プロフィール

馮富久(ふぉんとみひさ)

株式会社技術評論社クロスメディア事業部電子出版推進室室長。

1975年生まれ。横浜市出身。1999年4月株式会社技術評論社に入社。入社後から『Software Design』編集部に配属され,2004年1月に編集長へ就任。同2004年9月に『Web Site Expert』を立ち上げ,同誌編集長に就任,現在に至る。その後,2008年9月に設立したクロスメディア事業部に配属。現在,電子書籍を考える出版社の会の事務局長やWebSig 24/7のモデレーターを務める。過去にIPAオープンソースデータベースワーキンググループ委員やアックゼロヨン・アワード他各賞審査員などの経験を持つ。

Twitte ID:tomihisa(http://twitter.com/tomihisa/

コメント

コメントの記入