Регистрация Extenders в модуле

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

korshunov
korshunov
Репутация: 91
Сообщения: 1451
Зарегистрирован: 03.12.2015
С нами: 5 лет 6 месяцев
Skype

Сообщение #1 korshunov » 20.02.2021, 08:52

Встретилась ситуация при создании модуля.
В Init.php вставляю

Код: Выделить всё

       $this->registerQueueExtension(
            ['class' => ProductsHelper::class, 'method' => 'getList'],
            ['class' => Extender4::class, 'method' => 'getList']
        );


Выдает ошибку Class Okay\Modules\...\Init\Extender4::getList not callable, что хорошо и правильно.

Добавляю
use Okay\Modules\...\Extenders\Extender4;

Ошибка исчезает. Но экстендер реально не вызывается.
Причина в том, что отсутствует
use Okay\Helpers\ProductsHelper;

Если добавить, то работает.

В связи с этим замечание: надо бы, чтобы аналогичая ошибка показывалась и при отсутствии второго use.

zyxer M
zyxer M
Возраст: 29
Репутация: 76
Сообщения: 421
Зарегистрирован: 03.02.2016
С нами: 5 лет 4 месяца
Откуда: Днепр

Сообщение #2 zyxer » 20.02.2021, 09:56

Да, добавили проверку. В следующем релизе будет. Проверка заключается в том, есть ли в расширяемом классе указанный метод.

P.S. Очень рекомендую пользоваться IDE-шкой, она практически исключает такие ситуации. Тот же phpstorm там если написать название класса и выбрать с автокомплита нужный, он сам добавить его в use http://prntscr.com/101qgdm, очень удобно. + Переход по классам через ctrl как по ссылке.
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

korshunov
korshunov
Репутация: 91
Сообщения: 1451
Зарегистрирован: 03.12.2015
С нами: 5 лет 6 месяцев
Skype

Сообщение #3 korshunov » 20.02.2021, 14:59

А как на витрине вмешаться и подправить формирование данных из таблицы ok_variants ?
Пробовал навешать экстендеры на ['class' => ProductsHelper::class, 'method' => 'attachVariants'], но, например, на странице корзины это не работает.
Хотелось бы в одном месте перехватить выборку из таблицы и обработать по-своему.

zyxer M
zyxer M
Возраст: 29
Репутация: 76
Сообщения: 421
Зарегистрирован: 03.02.2016
С нами: 5 лет 4 месяца
Откуда: Днепр

Сообщение #4 zyxer » 20.02.2021, 15:49

Смотря что именно вам нужно, но можно экстендить CRUD методы классов Entities. Но это будет глобально или же экстендить точечно где это нужно
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

korshunov
korshunov
Репутация: 91
Сообщения: 1451
Зарегистрирован: 03.12.2015
С нами: 5 лет 6 месяцев
Skype

Сообщение #5 korshunov » 21.02.2021, 07:02

.


Название раздела: Баг-репорт OkayCMS (Сообщения об ошибках)
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Баг-репорт OkayCMS (Сообщения об ошибках)»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость