— Нет! Вы, конечно, можете называть события как угодно и вызывать откуда угодно, но правильно составленные имена событий не будут требовать заучивания, они как будто сами будут печататься на экране.
Как же следует именовать события в своих компонентах? — Так, чтобы они читались как полноценные предложения, а для этого надо разобраться с их структурой.
Обычное предложение состоит из подлежащего, сказуемого и дополнения.
Давайте рассмотрим несколько событий из ядра Joomla:
onContentBeforeDisplay
-
on префикс, с которого в Joomla принято начинать имя события;
-
Content — существительное, является подлежащим в предложении, в компоненте com_content только один тип сущностей (материалы), поэтому для определения существительного достаточно названия компонента;
-
Before — предлог времени, указывающий, что событие происходит до указанного действия;
-
Display — глагол который является сказуемым в предложении.
onBeforeCompileHead
А в событии onBeforeCompileHead
нет подлежащего (это нормально для событий ядра Joomla, подразумевается что действие выполняет система). Но в нём есть дополнение:
-
on — префикс;
-
Before — предлог времени;
-
Compile — сказуемое;
-
Head — существительное, является дополнением в преложении, определяет объект, над которым выполнется действие.
onFinderCategoryChangeState
В событии onFinderCategoryChangeState
подлежащее состоит из двух слов: имени компонента — Finder и имени сущности — Category.
-
on — префикс;
-
FinderCategory — подлежащее;
-
Before — предлог времени;
-
Compile — сказуемое;
-
Head — существительное, является дополнением в преложении, определяет объект, над которым выполнется действие.
onComUsersControllerMethodBeforeAdd
Ещё один пример читаемого имени для события, встретив такое событие в плагине вам сразу станет понятно где оно вызывается.
-
on — префикс;
-
ComUsersControllerMethod — подлежащее (компонент+конроллер);
-
Before — предлог времени;
-
Add — сказуемое, (метод).
Имя класса — принято делать существительным, имя метода — глаголом или глаголом+существительным. Таким образом получаем основную формулу для имени события: on
+ Class
+ Before/After
+ method
.
Отдельно хочу обратить внимание на события, возвращающие результат
Имена некоторых событий, например: onGetStatsData, onApiGetFields… не включают предлог времени (Before/After), но содержат глагол Get, потому что событие вызывается ни до ни после, а вместо действия, с целью получить данные из плагинов.
<?php $result = Factory::getApplication()->triggerEvent('onGetStatsData', ['stats.field.data']);
<?php /** @var OnGetApiFields $eventResult */ $eventResult = Factory::getApplication()->getDispatcher()->dispatch('onApiGetFields', $event);
Надеюсь даные рекомендации помогут начинающим и не очень Joomla-разработчикам сделать свой код более читаемым.
ссылка на оригинал статьи https://habr.com/ru/articles/851886/
Добавить комментарий