Принцип работы
1. При старте все конфигарационные файлы объединяются в один, пользовательский конфиг переопределяет системный.
2. Пакеты обрабатываются по URL вида /plugin/name, где plugin - один из плагинов hard, name - произвольное название объекта плагина. Одновременно может использоваться несколько объектов одного плагина. Каждый объект плагин имеет собственные настройки (определенные в plugins.plugin.name). Активные объекты плагинов определяются в конфигурационном файле default.yml в ключе enabled_plugins. Например:
Code Block | ||
---|---|---|
| ||
enabled_plugins: [base/main, base/test, dhcp/main] |
3. Перед обработкой запроса непосредственно объектом плагина, выполняется последовательность фильтров определенных в plugins.plugin.name.call_stack в прямом порядке. После завершения действий объекта плагина, выполняются те же фильтры из call_stack, но в обратном порядке. Таким образом, с помощью добавления пользовательского фильтра можно изменять данные как запроса, так и ответа приложения.