У PHP хуки часто реалізовуються через використання зворотних викликів (callbacks), інтерфейсів, або спеціальних об'єктів-посередників. Нижче подано простий приклад, який демонструє використання хуків у PHP.
’Some data from the system’];
public function registerHook($hook) {
$this->hooks[] = $hook;
}
public function unregisterHook($hook) {
$index = array_search($hook, $this->hooks);
if ($index !== false) {
unset($this->hooks[$index]);
}
}
public function runFunctionality() {
echo "Викликається основна функціональність
";
foreach ($this->hooks as $hook) {
$hook($this->data);
}
}
}
// Код, який може написати сторонній програміст
function additionalFunctionality1($data) {
echo "Вставка додаткової функціональності 1
";
echo "Дані з системи: " . $data[’system_data’] . "
";
$data[’additional_data_1’] = ’Some additional data 1’;
}
function additionalFunctionality2($data) {
echo "Вставка додаткової функціональності 2
";
$data[’additional_data_2’] = ’Some additional data 2’;
}
// Використання системи та додання функціоналу через хуки
$systemInstance = new System();
// Сторонній програміст реєструє свій хук
$systemInstance->registerHook(’additionalFunctionality1’);
$systemInstance->registerHook(’additionalFunctionality2’);
// Основний код системи викликається, включаючи всі зареєстровані хуки
$systemInstance->runFunctionality();
У цьому прикладі використовуються звичайні функції як хуки, і вони передаються системі як зворотні виклики. Методи registerHook
та unregisterHook
відповідають за реєстрацію та видалення хуків у системі.
Автор: Рудюк С.А. 2023. K2 Cloud ERP.