Рассмотрим этот модуль Prestashop 1.7 M:
class M extends Module
{
public function __construct()
{
$this->c = new Negoce\Classes\C($this);
}
}
Как видите, я даю его экземпляр классу C
. Код последнего:
<code>class C {
public function __construct($mod) {
$mod->registerHook('actionObjectCustomerAddAfter');
}
public function hookActionObjectCustomerAddAfter($data) {
$client = $data['object'];
echo '<pre>';
echo ' $client ';
var_dump($client);
echo '
'; Выход; }}
Ожидаемое поведение будет следующим: если я создаю клиента в Prestashop, то выполняется дамп, а также exit
, в результате чего получается пустая страница с текстом дампа. .
Фактическое поведение таково: если я создаю клиента в Prestashop, дамп не выполняется, exit
тоже не выполняется, что приводит к странице со списком клиентов с вновь созданным клиентом и уведомлением. сообщая мне, что новый клиент был создан.
Ожидаемое поведение можно получить, не используя класс C
и перемещая код последнего в пределах класса M
. Тем не менее, я действительно хочу делегировать C
, в целях обеспечения легкости и удобства обслуживания.
Как я могу это сделать? Почему это не работает?