Download the PHP package arhone/trigger without Composer
On this page you can find all versions of the php package arhone/trigger. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download arhone/trigger
More information about arhone/trigger
Files in arhone/trigger
Package trigger
Short Description Триггер (PHP 7)
License MIT
Homepage https://github.com/arhone/trigger
Informations about the package trigger
Trigger
Спусковой крючок (PHP 7)
Триггер позволяет создавать событийные приложения, запуская события на основе других событий.
Триггер в отличае от роутера создаёт связи не только один к одному, но и один ко многим.
Принцип работы триггера очень прост: 1) Вы добавляется обработчик какого то события 2) Запускаете это событие 3) Обработчики выполняются
Можно добавлять сколько угодно обработчиков на одно и тоже событие, в таком случае они последовательно обработают ваш запрос.
Триггер может пригодиться в различных задачах, например: 1) Вывод разного содержимого сайта по разным адресам. В качестве события вы указываете URI страницы, обработчик конкретной страницы возвращает конкретный результат. 2) Обработка команд из консоли или крона или через API других приложений, например telegram. На сервер приходит команда, обработчики на неё реагируют. 3) Создание зацепок. Например можно запустить событие о том, что добавилась новая новость или на сервер загрузился новый файл. В будущем можно написать обработку этих событий, например при добавлении новости можно очистить кэш блока последних новостей, а при загрузки изображения наложить на него водяной знак. 4) Логгировать/регировать. Допустим вы делаете систему документооборота и вам нужно отправить оповещение, если пользователь прочитал документ. 5) Ограничивать доступ. Если пользователь не авторизирован, то показать ему форму авторизации. 6) И многое другое.
Установка
Примеры
Триггер понимает регулярные выражения
В обработчик приходят три аргумента 1) $match - Массив с совпадениями 2) $data - Данные, переданные вторым параметром в метод run 3) $option - Массив с настройками
Регистрация нескольких обработчиков
Ответ предыдущего обработчика, будет передан следующему в $data
Обработчик можно сделать "обрывающим"
На обрывающем обработчике прервётся стек обработки текущего события, если обработчик вернул не null.
Для создания обрывающего обработчика, нужно установить (break) параметр в true
Позиция в очереди
С помощью массива $option можно указать порядок запуска обработчиков.
Рекомендуемые значения от -1 до 1 (по умолчанию 0)
Таким образом с помощью позиции -1 можно ставить выполнение обработчика в самое начало, а с помощью 1, в самый конец.
Используйте метод $trigger->plan() вместо $trigger->run() что бы увидеть в какой последовательности будут запущены обработчики события.
Именованный обработчики
Обработчику можно задать уникальное имя.
Как видно из примера выше, имя помогает опознать обработчик при использовании метода "plan".
Так же по имени можно переопределить опции другого обработчика.
Включение \ отключение обработчиков
Опция "status" позволяет отключать ненужные обработчики.
Ещё примеры
Управления маршрутами (Router)
Триггер можно использовать для обработки маршрутов.
Можете сами формировать шаблон запроса, например для запросов через веб сервер, можно указывать HTTP:TYPE:path, а для запросов через консоль console:command