ECオープンプラットフォームとなったEC-CUBEを徹底活用!

第4回 徹底解説,プラグイン仕様

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

ここまで3回にわたり,EC-CUBEの特徴や今回リリースされたプラグインの使い方,事例紹介をしてきました。今回からはいよいよその中身に迫っていきたいと思います。 ぜひ,本記事を参考に,プラグイン作成にチャレンジしてみてください。

EC-CUBEの構造

プラグインの仕様に入る前に,まずはEC-CUBEの構造をおさらいしておきましょう。

まず,EC-CUBEのソースはPHPで記述されており,DBはMySQL,PostgreSQLどちらでも可。WebサーバはApacheやIISでの動作にも対応しており,システム要件としての導入障壁は比較的低くなっています。EC-CUBEがオープンソースという形態ながらこれほど普及している背景には,こういった導入障壁の低さというところもあります。

詳細なシステム要件はEC-CUBEオフィシャルサイトを参照してください。

そして,EC-CUBEの全体構造は,いわゆるMVCモデルで構成されています。

  • M(モデル)⁠各種処理クラス
  • V(ビュー)⁠Smartyによるテンプレートエンジン
  • C(コントローラ)⁠ページクラス

ページクラスで各ページごとでの処理の流れが記載されており,随時処理クラスの呼び出し(DB接続等)を行います。

最後にその結果をSmartyのテンプレートエンジンへ表示結果を反映するという流れです。EC-CUBEでは一部ページクラスで処理の記載がされていますが,基本的には上記の理解で問題ないでしょう。

EC-CUBE上での処理の流れはいわゆるMVCモデル

EC-CUBE上での処理の流れはいわゆるMVCモデル

プラグインでできること

EC-CUBEの構造をおさえたところで,本題のプラグインの仕様に踏み込んでいきましょう。

EC-CUBEのプラグインでできることは大雑把には以下の2点です。

  1. EC-CUBE本体処理へ介入して処理・結果を書き換える
  2. EC-CUBE本体テンプレートを変更する

まず,1.本体処理への介入 に関してはフックという仕組みにより処理の介入を可能にしています。フックとは,WikiPediaによると,以下のような説明になっています。

プログラム中の特定の箇所に,利用者が独自の処理を追加できるようにする仕組み。また,フックを利用して独自の処理を追加することを「フックする」という。

EC-CUBEではこのフックするポイント,すなわちフックポイントをPHPソースの随所に置くことにより処理の介入を可能にしています。

ちなみに,オープンソースCMSであるWordPressでもプラグインにおいて,このフックという仕組みが採用されています。このフックポイントの採用により,EC-CUBEでは以下のようなことが可能となっています。

  • フォームからのPOST値を変更する
  • 別のページに遷移させる
  • まったく別の処理を実行する

上記見てわかるとおり,EC-CUBEのプラグイン機構では処理の追加,そして処理の乗っ取りができることにより,Web上で考えられる,ほぼすべてのことが可能とのことです。

EC-CUBE本体処理にフックポイントにより介入する事ができる

EC-CUBE本体処理にフックポイントにより介入する事ができる

一方 2.本体テンプレートを変更する という仕組みではPHPソースではなく,テンプレートエンジンSmartyのFilter機能という部分にフックすることによって機能を実現させています。

詳細は後述しますが,以下のようなことが可能です。

  • ボタンを追加する
  • フォームを追加する
  • テーブル(HTML)を消す

Smartyがコンパイルファイルを作る処理にフックする

Smartyがコンパイルファイルを作る処理にフックする

以上のとおり,あらゆるポイントで処理の介入ができることがわかりました。

次項より,各仕組みごとにもう少し詳しく見ていきます。

EC-CUBEのMVCモデルにフックポイントを当てはめるとこのようになります。ほとんどの部分で処理が介入できることがわかります

EC-CUBEのMVCモデルにフックポイントを当てはめるとこのようになります。ほとんどの部分で処理が介入できることがわかります

著者プロフィール

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

株式会社技術評論社クロスメディア事業室室長。

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

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

コメント

コメントの記入