Как правильно прикрутить систему хуков для своего сайта?

В данный момент необходимо для работы некоторых модулей прикрутить систему хуков на самописный сайт. Чистого описания системы вне cms не нашел. Подскажите как правильно реализовать эту технологию подключения модулей.
  • Вопрос задан
  • 3068 просмотров
Пригласить эксперта
Ответы на вопрос 3
mannaro
@mannaro
Умею профессионально гуглить
Попробуйте как-то так:
$modules = array();
  
  function addToModule($module, $func) {
    $modules[$module][] = $func;
  }
  function getModule($module, $arguments) {
    foreach($modules[$module] as $func) $func($arguments);
  }


Добавляйте модули так:
function one ($arguments) { include 'test.html'; }
addToModule('test', 'one');
function two ($arguments) { echo $arguments[1]->greating; }
addToModule('test', 'two');


И в нужном месте страницы делайте так:
getModule('test', array($var1, $var2, $var3));
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Можете брать мой код:
https://github.com/nazar-pc/CleverStyle-CMS/blob/m...
Его очень легко перенести в свой проект, взяв трейт из core/traits/Singleton.php и модифицировав код в методе ::run(), он при первом запуске сканирует все места где могут лежать хуки (в терминологии моего движка они триггеры событий), если вам не нужно сканирование файлов - можете вообще удалить тот участок.

При регистрации триггера передается замыкание, так что с помощью use можно пробросить туда нужные данные с места объявления.
Ответ написан
Комментировать
mannaro
@mannaro
Умею профессионально гуглить
Вы напишите хоть, что за CMS у вас?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы