考虑这个 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条经验 获得超7个赞
这是我认为更好的方法:
class M extends C
class C extends Module
提示:您的“registerHook”函数不应该在构造函数中。它必须在安装功能中。
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消