Download the PHP package pllano/hooks without Composer
On this page you can find all versions of the php package pllano/hooks. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package hooks
Short Description Hooks for API Shop
License MIT
Homepage https://github.com/pllano/hooks
Informations about the package hooks
Hooks
Менеджер Pllano\Hooks\Hook
- запускает выполнение ожидающих классов в начале и в конце или в необходимом месте скрипта, передает им информацию для обработки которую они могут подменять или брать из нее данные без подмены. Это дает возможность писать дополнения без вмешательства в код вашей App. Конкретный хук не должен знать когда ему выполнятся, это должен определить менеджер Pllano\Hooks\Hook взяв параметры хука и сравнить их с текущими условиями. Если есть совпадение запустить хук. Задача хука выполнить свою миссию.
Как и где использовать ? Примеры:
- Вы хотите подключить и вести статистику посещаемости сайта. Вы добавляете плагин в список выполнения и только берете данные из Request отдавая их назад без изменения.
- Вам необходимо контролировать все приходящие параметры через POST для того чтобы повысить безопасность. Вы создаете хук и нацеливаете его только на POST запросы. Обрабатываете параметры из массива $post = $request->getParsedBody(); и возвращаете их проверенными и очищенными от лишнего.
- Вы хотите вести черный/белый списки посетителей чтобы повысить защиту от возможных DDoS. Для этого необходимо в первую очередь настроить максимальное кеширование и дописать плагин отсекающий IP с большим количеством обращений к сайту. Также нужен плагин который будет искать на вашем сайте все тяжелые запросы и сообщать вам о них для добавления их в кеш или оптимизацию скриптов.
Hooks - перехватывает и может менять:
Request
вGET
иPOST
запросахResponse
вGET
иPOST
запросахView
- Массив для шаблонизатора вGET
запросахRender
- Название шаблона для рендера - вGET
запросахCallback
вPOST
запросахУстановить список Hook для выполнения
Передать список Hook можно через param двумя способами:
- Массивом в конструктор
$param = [];
- Из фала
hooks.json
Параметры конфигурации Hook
print
- Вывести отладочную информацию1
или выключить0
vendor
- Полное название классаquery
- запрос при котором сработаетGET
POST
илиall
ноль использовать нельзя.render
- шаблон для рендераindex.twig
илиall
или0
url
- конкретный url с/
илиall
или0
(планируем доработать*
пример/article-*.html
)routers
- название роутераindex
,article
или0
илиall
resource
- таблица или ресурс к которому происходит обращениеuser
илиall
или0
app
- тип App -site
admin
- так как названияrender
могут совпадать илиall
ноль использовать нельзя.state
- статус0
- не активен или1
- активенconfig
- индивидуальная конфигурация{массив}
или0
Каркасы для создания пользовательских Hooks
В комплекте идет два каркаса для разработки. Сохраните и доработайте один из этих классов в зависимости от необходимости.
- Класс
HookIndexGet
- обрабатывает толькоGET
запросы. По умолчанию должен заменить шаблонrender
наhooks.html
таким образом вы сможете проверить что Hooks работает. - Класс
HookAll
- обрабатывает все запросыИспользование
GET