Przyjmijmy, ze twoj hook nazywa sie "initial".
Samo tworzenie hooka jest bardzo proste, poprostu dopisz go do tabeli ps_hook.
Teraz mozesz juz podpinac moduly do niego.
W module, w metodzie install dopisujesz "$this->registerHook('initial')", czyli polecasz zarejestrowac dany modul w podanym hooku. W momencie instalacji twoj modul dopisany zostaje do tabeli ps_module i ps_hook_module.
Gdzies musisz go teraz "odpalic" w kontrolerze, np. Module::hookExec('initial'), i wtedy wykonaja ci sie wszystkie metody hookInitial() w zarejestrowanych i aktywnych madulach danego hooka.
Metoda ktora sie wykona nazywa sie tak samo jak nazwa twojego hooka pisana z duzej litery z pefiksem hook. Dany modul, moze byc podpiety do jednego hooka, wielu, albo wcale.
I to juz koniec, ot cala filozofia.
Po wiecej zapraszam na priv.