バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
katoasr
投稿日時: 2020/4/28 8:18
対応状況: −−−
半人前
登録日: 2020/1/30
居住地:
投稿: 11
【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
▼テンプレート
[EC-CUBE] EC-CUBE4.0.3を新規インストール
[レンタルサーバ]使用していない
[OS] WIN10 pro
[PHP] PHP7.2.26
[データベース] MySQL5.7
[WEBサーバ] httpd-2.4.39
[ブラウザ] Google Chrome
[導入プラグインの有無] 無
[カスタマイズの有無]有

[現象]
src\Eccube\Event\EccubeEvent.phpに記述のある
// index
const FRONT_SHOPPING_INDEX_INITIALIZE = 'front.shopping.index.initialize';
をリスナーするcontrollerを作成しましたが実行されません。
controllerにブレークポイントを設定しても処理が停止しないことからcontrollerは実行されていないです。

このEVENTでcontrollerを実行するにはどうすればいいのでしょうか?
468
投稿日時: 2020/4/28 10:03
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
該当のフックポイントはプラグインで利用するものと思っていますが
プラグインを開発されたという訳ではないのでしょうか?


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

katoasr
投稿日時: 2020/4/28 10:39
対応状況: −−−
半人前
登録日: 2020/1/30
居住地:
投稿: 11
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
Ec3用に開発されたpluginをEc4.0.3に移行する作業を実施しています。Ec3では該当のフックポイントを利用してDBの書き込みをしています。EccubeEventsに該当のフックポイントの記載があったのでそのまま使っています。
468
投稿日時: 2020/4/28 11:50
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
3系と4系ではイベントフックとfunctionを紐づける定義の方法が変わっていると思うのですが
その辺りは対応済みですか?

3系はevent.ymlでイベントフックとfunctionを設定していたと思うのですが
4系はEventSubscriberInterfaceを実装したクラスのstatic function getSubscribedEvents()で
イベントフックとfunctionを関連付ける仕様になっているかと思います。


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

katoasr
投稿日時: 2020/4/28 12:53
対応状況: −−−
半人前
登録日: 2020/1/30
居住地:
投稿: 11
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
言葉足らずでした。
3系のevent.ymlから4系のEventSubscriberInterfaceを実装したクラスのstatic function getSubscribedEvents()にしています。
plugin名Event.phpです。

4系へ移行するのに、まずsrc/Eccube/Event/EccubeEventで4系のEVENTフックを確認して、3系のevent.ymlを4系に置き換えています。

EccubeEvents::FRONT_SHOPPING_INDEX_INITIALIZEはsrc/Eccube/Event/EccubeEventに記述していたのでそのまま、getSubscribedEvents()で使っていたのですが、そのEVENTリスナーであるcontrollerが動いてませんでした。

src/Eccube/Event/EccubeEventで定義しているEVENTフックが使えないことはあるのでしょうか?

よろしくお願いします。
468
投稿日時: 2020/4/28 17:28
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
何度も説明していただき、ありがとうございます。
私が質問の意味を理解できていなかった可能性が高い気がしてきました。

katoasrさんの質問の意図としては、
ShoppingController::index()を通過時に
EccubeEvents::FRONT_SHOPPING_INDEX_INITIALIZEイベントフックが実行されないのか?という質問でよろしかったでしょうか?

そういった意味でShoppingController.phpのソースを確認してみましたが
確かにイベントフックを呼び出す記述が見当たらない為、
EccubeEvents::FRONT_SHOPPING_INDEX_INITIALIZEイベントフックは実行されないと思います。

ローカルフックポイントは以下の記述で定義されており、
そこを処理が通過する際にプラグイン側の処理が呼び出されるはずですので...

$this->eventDispatcher->dispatch(****, ****);

何故、ShoppingController::index()に該当のフックポイントが無いのか理由は分かりません。
何処かにEccubeEvents::FRONT_SHOPPING_INDEX_INITIALIZEイベントフックを呼び出している所があるのか、
ECCUBEソース一式を対象にコード内検索を行いましたが
どこにもEccubeEvents::FRONT_SHOPPING_INDEX_INITIALIZEイベントフックを呼び出している箇所はなさそうです。

よって、ShoppingController::index()に自分でフックポイントを追加する必要があるのではないでしょうか?


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

katoasr
投稿日時: 2020/4/29 5:40
対応状況: −−−
半人前
登録日: 2020/1/30
居住地:
投稿: 11
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
468さん回答ありがとうございます。
質問の意図はその通りです。

自分で追加するしかないのですね。pluginなので本体プログラムには手を入れないように移行しようとしていましたが。

plugin開発していて本体プログラムに手を入れることは今までありましたか?
ないので記述するしかないのですが、pluginでなんとかするのがお作法だったりしますか?

ちなみに、下記のフックポイントもなかったです。
const FRONT_SHOPPING_CONFIRM_INITIALIZE = 'front.shopping.confirm.initialize';
const FRONT_SHOPPING_CONFIRM_PROCESSING = 'front.shopping.confirm.processing';
const FRONT_SHOPPING_CONFIRM_COMPLETE = 'front.shopping.confirm.complete';
468
投稿日時: 2020/4/29 11:34
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
プラグイン開発において、やむを得ず本体プログラムに手を加えた事はあります。

また、3系の話になりますが
弊社で販売しているプラグインでもプラグインのインストール後に1行だけPHPに追記をお願いしているものもあります。
オーナーズストア運営に質問して
そういったプラグインの販売でもOKと回答をいただいていますので。


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

katoasr
投稿日時: 2020/4/30 4:02
対応状況: 解決済
半人前
登録日: 2020/1/30
居住地:
投稿: 11
Re: 【EC-CUBE4.0.3】ShoppingController::indexのEVENTについて
なるほどわかりました。

教えてくださりありがおとうございます。

今後ともよろしくお願いいたします
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.