Pre-loader


Використання хуків в PHP

У 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.