EC-CUBE2.12.0のプラグインを作ってみた

eccube ECCUBE

仕様は2.11のときから見ていたので、ドキュメントも見ずに何となくで作ってみました
nobuhiko/SessionNotUsingDB · GitHub

ですが!
今のプラグインの仕様の制約上動きませんでした ・゚・(ノД`)・゚・
仕様書には書いてなかったけどソースを追っかけたら書いてあったよ。。

~~~
// プラグイン向けフックポイント
// MEMO: プラグインのローダーがDB接続を必要とするため、SC_Queryがロードされた後のみ呼び出される。
// プラグイン情報のキャッシュ化が行われれば、全部にフックさせることを可能に?
~~~
そのうち直るといいですね

でまぁ、これが、プラグインを作る上での最小構成のファイルになると思うのでちょっと解説します
詳細を知りたい方はhttp://downloads.ec-cube.net/src/manual/12.0_plugin/plugin.pdfをどうぞ

plugin_info.php

プラグインの設定ファイル
大事なのは$PLUGIN_CODE,$CLASS_NAME,$HOOK_POINTS

SessionNotUsingDB.php

plugin_info.phpの$CLASS_NAMEで設定したファイル名、class名で実装する必要がある
このファイルでこのプラグインで何をするのかを決定する

今回はloadClassFileChangeというフックで、既存のクラスを上書きしている
これを使うと基本的にはEC-CUBEの全メソッドが上書き出来るのでカスタマイズの際に本体をいじらなくてもよくなる
ただし例外があり、その例外に引っかかった為このプラグインは機能しないわけですが。。

plg_SessionNotUsingDB_SC_Helper_Session.php

loadClassFileChangeでSC_Helper_Sessionをオーバーライドしているクラス
上書きしたいメソッドのみ書くことで処理を書き換えることが可能になる

今回はセッション管理にDBを使わないようにするメソッドを書いてます

logo.png

64×64の画像が管理画面上に表示出来るので必要とあらば用意する
wordpressを見ている限りでは必要ない気も…

という感じでEC-CUBEのプラグインの単純な作り方でした
公式サイトに上げなくても、インストールすることは可能なのでまずは単純なものを作って試してみるといいかと思います

コメント

タイトルとURLをコピーしました