バージョン選択

フォーラム

メニュー

オンライン状況

42 人のユーザが現在オンラインです。 (32 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 42
もっと...

サイト内検索

プラグイン > 開発について > 独自のフックポイント実装は可能でしょうか?

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kinon
投稿日時: 2017/1/16 19:10
対応状況: −−−
新米
登録日: 2017/1/16
居住地:
投稿: 10
独自のフックポイント実装は可能でしょうか?
現在CategoryControllerを拡張したいと考えており、プラグインを作成しましたが、CategoryController内部にフックの設定がありません。

試しにプラグインの中のevent.ymlにて
eccube.event.controller.category.before:
- [hoge, NORMAL]
と記述してもhogeが呼び出されることはありませんでした。

そこで独自のフックポイントの作成が必要になるのでしょうか?
その場合どのように実装したらよいでしょうか。
468
投稿日時: 2017/1/16 21:12
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 独自のフックポイント実装は可能でしょうか?
ECCUBEのバージョンはいくつでしょうか?
3.0.9以降は個別フックポイントというものもあり、プラグインの処理を呼び出す箇所が増えています。

3.0.9以前のバージョンの場合、共通フックポイントを指定する形になると思います。
event.ymlへの記述方法はハッキリと覚えていないのですが、以下のような感じだったと思います。

eccube.event.controller.admin_category_edit.before

独自のフックポイントも実装できない事は無いと思いますが、
ECCUBE本体をバージョンアップすると、その部分は無くなってしまうと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

tao_s
投稿日時: 2017/1/17 7:21
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: 独自のフックポイント実装は可能でしょうか?
過去にプラグインを作成した際に、同じ様にフックポイントが無いところで処理を挟みたくて、プラグインのServiceProviderのregister()内で
$app->on(\Symfony\Component\HttpKernel\KernelEvents::RESPONSE, function(\Symfony\Component\HttpKernel\Event\FilterResponseEvent $event) use ($app) {

こんな感じで実装しました。
たぶん、フレームワークの方で特定のコントローラーが呼び出された時のフックポイントとかあると思うので、そこにフックさせてCategoryControllerの時だけ処理を実行させれば、プラグインとしても実装できると思います。


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

kinon
投稿日時: 2017/1/17 9:51
対応状況: −−−
新米
登録日: 2017/1/16
居住地:
投稿: 10
Re: 独自のフックポイント実装は可能でしょうか?
すみません。
ECCUBEのバージョンは最新の3.0.13です。
kinon
投稿日時: 2017/1/17 10:01
対応状況: −−−
新米
登録日: 2017/1/16
居住地:
投稿: 10
Re: 独自のフックポイント実装は可能でしょうか?
$app->on(\Symfony\Component\HttpKernel\KernelEvents::RESPONSE, function(\Symfony\Component\HttpKernel\Event\FilterResponseEvent $event) use ($app) { ここに処理いれる感じでしょうか }

上記のコードを入れることでCategoryControllerの時のみ処理を実行できるのしょうか。

EC-CUBEではCategoryController以外のコントローラーが呼び出されたときはフックポイントがあるので、いいのですが、CategoryControllerにはありません。
468
投稿日時: 2017/1/17 15:23
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 独自のフックポイント実装は可能でしょうか?
プラグインの処理を埋め込みたいのは、フロントのカテゴリブロックでしょうか?
確かに個別フックポイントはありませんが、共通フックポイントは使えませんか?

eccube.event.route.block_category.request
eccube.event.route.block_category.controller
eccube.event.route.block_category.response
eccube.event.route.block_category.exception
eccube.event.route.block_category.terminate

ブロックで共通フックポイントを試していないので動作するか分かりませんが・・・。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

kinon
投稿日時: 2017/1/18 15:08
対応状況: −−−
新米
登録日: 2017/1/16
居住地:
投稿: 10
Re: 独自のフックポイント実装は可能でしょうか?
eccube.event.route.block_category.request
eccube.event.route.block_category.controller
eccube.event.route.block_category.response
eccube.event.route.block_category.exception
eccube.event.route.block_category.terminate

上記いずれも動作しませんでした...
nanasess
投稿日時: 2017/1/19 9:36
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2311
Re: 独自のフックポイント実装は可能でしょうか?
・別の案件などで再利用したい
・アンインストールの必要がある
・git などでソースコードのバージョン管理ができない

といった要件がなければ、プラグインにせず、 CategoryController を直接カスタマイズしてしまってはいかがでしょうか。

ご参考
http://qiita.com/nanasess/items/fe2a93ff64833d87eb19
kinon
投稿日時: 2017/1/19 14:18
対応状況: −−−
新米
登録日: 2017/1/16
居住地:
投稿: 10
Re: 独自のフックポイント実装は可能でしょうか?
CategoryControllerの直接カスタマイズはバージョンアップのときに、コンフリクトするかもしれないので出来ればプラグインにしたいなと考えています。
現状は直接カスタマイズしていますが、EC-CUBE3ではあまりsrc配下をいじるのはよくないと思っていましたので。。。
468
投稿日時: 2017/1/19 14:56
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 独自のフックポイント実装は可能でしょうか?
テンプレートフックインは利用できませんか?
Block/category.twig:
- [hogehoge, NORMAL]


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,684名です
総投稿数は109,930件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.