Класс для работы с хуками.
Получает и выполняет функции повешаные на хук.
hook::set('test_hook1', 'testing_hook');
function testing_hook($text){
return '[func testing_hook] '.$text;
}
// с приоритетом 1, по умолчанию 50
hook::set('test_hook2', 'Testing_hook::init', 1);
class Testing_hook {
static function init($text, $params){
return '[method testing_hook::init] '.$text.' (key: '.$params['key'].')';
}
}
$test = 'Text';
$test = hook::get('test_hook1', $test);
$test = hook::get('test_hook2', $test, array('key' => 'value'));
// [method testing_hook::init] [func testing_hook] Text (key: value)
print_r($test);
Вешает функцию на хук.
Удаляет хук или функцию на него повешаную.
// удаляет хук
hook::remove('test_hook2');
// снимает функцию с хука
hook::remove('test_hook1', 'testing_hook');
Проверяет существует ли хук или висит ли на нём функция.
// есть ли хук
var_dump(hook::exists('test_hook2'));
// висит ли на хуке функция
var_dump(hook::exists('test_hook1', 'testing_hook'));