---
title: "Как триггерить события для плагинов на манер Joomla 5+? - WebTolk"
description: "Плагины в Joomla - тип расширения, который срабатывает в определённые моменты жизненного цикла Приложения Joomla.  В Joomla 6 удалят метод triggerEvent(). Как вызвать событие для плагинов по-новому в Joomla 6 расскажет эта статья."
url: "https://web-tolk.ru/blog/kak-triggerit-sobytiya-dlya-plaginov-na-maner-joomla-5"
date: "2025-10-02T07:27:34+00:00"
language: "ru-RU"
---

# Как триггерить события для плагинов на манер Joomla 5+?

 Автор: Сергей Толкачев Создано: 02 октября 2025 Обновлено: 02 октября 2025 Просмотров: 490    ![](https://web-tolk.ru/blog/images/blog/kak-triggerit-sobytiya-dlya-plaginov-na-maner-joomla-5/header.webp)

Плагины в Joomla - тип расширения, который срабатывает в определённые моменты жизненного цикла Приложения Joomla. Причем Joomla уже довольно давно может не только отдавать HTML-страницу, но и работать в командной строке (CLI), отдавать JSON в REST API, выполнять задания по расписанию и т.д. Все эти сценарии работы имеют свои "контрольные точки" событий, в которые могут вызываться плагины и совершать некие действия с данными. Или не совершать, а выполнять какие-то собственные действия просто в нужный момент.

В Joomla 6 должны удалить метод `$app->triggerEvent()`, с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:

- создать объект класса события
- передать в него параметры

```
<?php
use Joomla\CMS\Event\AbstractEvent;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\PluginHelper;

// Грузим плагины нужных групп
PluginHelper::importPlugin('system');
// Создаём объект события
$event = AbstractEvent::create('onAfterInitUniverse', [
    'subject' => $this,
    'data'    => $data, // какие-то данные
    'article' => $article, // ещё материал вдовесок
    'product' => $product, // и товаров подвезли
]);
// Триггерим событие
Factory::getApplication()->getDispatcher()->dispatch(
    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'
    $event
);
// Получаем результаты
// В случае с AbstractEvent это может быть не 'result',
// а что-то ещё - куда сами отдадите данные.
// 2-й аргумент - значение по умолчанию,
// если не получены результаты
$results = $event->getArgument('result', []);
```

Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов `$event->getArticle()`, `$event->getData()`, `$event->getProduct()` и подобными - реализуете сами под свои нужды.

Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе `eventClass`.

```
<?php
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;

$event = MyCoolEvent::create('onAfterInitUniverse', [
    'subject'    => $this,
    'eventClass' => MyCoolEvent::class, // ваш класс события
    'data'       => $data, // какие-то данные
    'article'    => $article, // ещё материал вдовесок
    'product'    => $product, // и товаров подвезли
]);
```

Ожидаемо, что класс вашего события будет расширять `AbsractEvent` или другие классы событий Joomla.

🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент `subject` обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой `stdClass` или объект `Joomla\registry\Registry`.

- [Пост в Telegram](https://t.me/webtolkru/715)

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": "Как триггерить события для плагинов на манер Joomla 5+?"
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/kak-triggerit-sobytiya-dlya-plaginov-na-maner-joomla-5",
            "name": "Как триггерить события для плагинов на манер Joomla 5+? - WebTolk",
            "description": "Плагины в Joomla - тип расширения, который срабатывает в определённые моменты жизненного цикла Приложения Joomla.  В Joomla 6 удалят метод triggerEvent(). Как вызвать событие для плагинов по-новому в Joomla 6 расскажет эта статья.",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/154",
            "name": "Как триггерить события для плагинов на манер Joomla 5+?",
            "headline": "Как триггерить события для плагинов на манер Joomla 5+?",
            "inLanguage": "ru-RU",
            "author": {
                "@type": "Person",
                "name": "Сергей Толкачев"
            },
            "thumbnailUrl": "images/blog/kak-triggerit-sobytiya-dlya-plaginov-na-maner-joomla-5/header.webp",
            "image": "images/blog/kak-triggerit-sobytiya-dlya-plaginov-na-maner-joomla-5/header.webp",
            "dateModified": "2025-10-02T00:00:00+00:00",
            "interactionStatistic": {
                "@type": "InteractionCounter",
                "userInteractionCount": 490
            },
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
