Middlewares

Эмулятор посредников для MODX
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Сергей Шлоков
Пакетов
17
Закачек
31 525
Автор дополнения
Пакетов
17
Закачек
31 525
Версия 1.1.1-pl
Дата выпуска 26.02.2021
Загрузки 26
Просмотры 6 703
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Это дополнение эмулирует работу посредников. Т.е. создаются дополнительные слои, обрабатывающие запрос. Также они позволяют взаимодействовать с ответом перед выводом его пользователю.
В Middlewares доступны 2 типа объектов — посредники и обработчики событий.

Посредники

Посредники бывают глобальными, обрабатывающие каждый запрос, и ресурсными, которые срабатывают только для указанных ресурсов. Первые указываются в системной настройке middlewares_global_middlewares — нужно указать их через запятую в нужной последовательности. Вторые указываются в специальной TV ресурса под названием middlewares. В качестве имени посредника указывается название файла класса без расширения .php.

Посредники представляют собой классы, которые размещаются в папке, указанной в системной настройке middlewares_path. Вот пример класса посредника:
// Файл test.php

class TestMiddleware extends Middlewares\Middleware
{
    public function onRequest() {}

    public function beforeResponse() {}

    public function afterResponse() {}
}

return 'TestMiddleware';
Класс посредника должен наследоваться от абстрактного класса Middlewares\Middleware. В классе доступен объект $this->modx. Метод onRequest() будет вызван на событие OnMODXInit для глобального посредника и на событие OnLoadWebDocument для посредника ресурса.

Метод beforeResponse() посредника вызывается на событие OnWebPagePrerender, метод OnWebPageComplete() — на событие OnWebPageComplete.

Обработчики событий

Обработчики событий представляют собой классы PHP и предназначены для замены плагинов MODX. Для того, чтобы обработчик сработал на определённое событие, нужно создать одноименный метод.
К сожалению, до версии MODX 2.5.8 из-за бага в ядре системы этот функционал не работает.

Статья на modx.pro.

1.1.1-pl

  • Fixed possible fatal error when updating MODX in the cli mode.

1.1.0-pl

  • Added an ability to run listeners before usual MODX plugins.
  • Global middlewares and listeners can be used in the "mgr" context.

1.1.0-beta

  • Adds event listeners based on classes.

1.0.0-pl

  • Initial release.

Последние обсуждения в сообществе MODX.pro