— Нет! Вы, конечно, можете называть события как угодно и вызывать откуда угодно, но правильно составленные имена событий не будут требовать заучивания, они как будто сами будут печататься на экране.
Как же следует именовать события в своих компонентах? — Так, чтобы они читались как полноценные предложения, а для этого надо разобраться с их структурой.
Обычное предложение состоит из подлежащего, сказуемого и дополнения.
Давайте рассмотрим несколько событий из ядра 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-разработчикам сделать свой код более читаемым.