@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 или обратиться к официальному сообществу за поддержкой.