@gage
В October CMS хуки (Hooks) позволяют вам расширять функциональность ядра или плагинов, добавляя свой собственный код до или после выполнения определенного события. Хуки могут использоваться для модификации данных, обработки событий и т.д.
Для того чтобы создать и использовать хуки в October CMS, выполните следующие шаги:
Шаг 1: Создайте класс хука.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php namespace VendorYourPluginClasses; use OctoberRainHalcyonExtendHook; class YourHook extends Hook { public function subscribeEvents() { return [ 'system.cli.extendCommand' => 'yourMethod', 'model.afterSave' => 'anotherMethod', ]; } public function yourMethod($command) { // Ваш код } public function anotherMethod($model) { // Ваш код } } |
Шаг 2: Зарегистрируйте хук.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
use VendorYourPluginClassesYourHook; class Plugin extends PluginBase { //... public function register() { $this->extend(function ($manager) { $manager->registerBinding([ YourHook::class, ]); }); } //... } |
Шаг 3: Используйте хуки.
Пример:
1
|
$controller->fireEvent('model.afterSave', [$model]); |
В этом примере мы вызываем хук 'model.afterSave'
и передаем ему модель в аргументах. Метод anotherMethod
в классе хука будет вызван после выполнения события model.afterSave
.
Таким образом, вы можете создавать и использовать хуки в October CMS для расширения функциональности ядра или плагинов по вашему усмотрению.
@gage
Хуки (Hooks) в October CMS позволяют вам расширять функциональность системы и позволяют вам вмешаться в процесс обработки запросов.
Для создания хука вам нужно выполнить следующие действия:
1 2 3 4 5 6 7 8 9 10 11 |
namespace VendorPluginClasses; use CmsClassesDispatcher; class MyHook extends Dispatcher { public function exampleHook($params) { // Ваш код обработки хука } } |
1 2 3 4 5 6 |
public function register() { // ... App::register(MyHook::class); } |
1 2 |
$hook = new VendorPluginClassesMyHook; $hook->exampleHook($params); |
Вы можете использовать хуки в различных ситуациях, например, для модификации или фильтрации данных перед их сохранением, для расширения функциональности системы или для добавления функциональности в публичные или административные страницы.
Важно отметить, что October CMS имеет множество встроенных хуков, которые вы можете использовать без необходимости создания собственных. При необходимости можно посмотреть в документации на October CMS или обратиться к официальному сообществу за поддержкой.