Как стать автором
Обновить

Как событие Joomla назовёшь, так оно и триггернётся?

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров621

— Нет! Вы, конечно, можете называть события как угодно и вызывать откуда угодно, но правильно составленные имена событий не будут требовать заучивания, они как будто сами будут печататься на экране.

Как же следует именовать события в своих компонентах? — Так, чтобы они читались как полноценные предложения, а для этого надо разобраться с их структурой.

Обычное предложение состоит из подлежащего, сказуемого и дополнения.

Давайте рассмотрим несколько событий из ядра 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-разработчикам сделать свой код более читаемым.

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+7
Комментарии1

Публикации

Истории

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область