考慮這個 Prestashop 1.7 模塊 M:class M extends Module{ public function __construct() { $this->c = new Negoce\Classes\C($this); }}如您所見,我將它的實例賦予一個類C。后者的代碼是:class C { public function __construct($mod) { $mod->registerHook('actionObjectCustomerAddAfter'); } public function hookActionObjectCustomerAddAfter($data) { $client = $data['object']; echo '<pre>'; echo ' $client '; var_dump($client); echo '</pre>'; exit; }}預(yù)期的行為是:如果我在 Prestashop 中創(chuàng)建客戶,則執(zhí)行轉(zhuǎn)儲,然后執(zhí)行轉(zhuǎn)儲exit,從而生成帶有轉(zhuǎn)儲文本的空白頁。實際行為是:如果我在 Prestashop 中創(chuàng)建客戶,則不會執(zhí)行轉(zhuǎn)儲,也不會執(zhí)行轉(zhuǎn)儲exit,導(dǎo)致客戶列表頁面顯示新創(chuàng)建的客戶,并通知我新客戶已創(chuàng)建??梢酝ㄟ^不使用類C并在類中移動后者的代碼來獲得預(yù)期的行為M。C但是,出于 lisibility 和可維護性的目的,我真的想委托給。我怎么能做到?為什么它不起作用?
1 回答

largeQ
TA貢獻2039條經(jīng)驗 獲得超8個贊
這是我認為更好的方法:
class M extends C
class C extends Module
提示:您的“registerHook”函數(shù)不應(yīng)該在構(gòu)造函數(shù)中。它必須在安裝功能中。
- 1 回答
- 0 關(guān)注
- 107 瀏覽
添加回答
舉報
0/150
提交
取消