考慮這個 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; }}預期的行為是:如果我在 Prestashop 中創建客戶,則執行轉儲,然后執行轉儲exit,從而生成帶有轉儲文本的空白頁。實際行為是:如果我在 Prestashop 中創建客戶,則不會執行轉儲,也不會執行轉儲exit,導致客戶列表頁面顯示新創建的客戶,并通知我新客戶已創建??梢酝ㄟ^不使用類C并在類中移動后者的代碼來獲得預期的行為M。C但是,出于 lisibility 和可維護性的目的,我真的想委托給。我怎么能做到?為什么它不起作用?
1 回答

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