Выполнить функцию (например, wordpress add_action)

Как настроить функции очереди в PHP? Мне нужно что-то, что работает так же, как система add_action WordPress. Я хочу функцию enqueue, которая затем запускается, когда время правильное.

редактировать

Кажется, это работает отлично. У кого-нибудь есть советы по улучшению моего кода?

  $enqueued_actions = array(); /** * Enqueue an action to run at a later time. * @param string $hook The hook name. * @param obj $func The function object. * @param integer $imp The level of importance from 0-9 */ function add_action($hook, $func, $imp = 0) { global $enqueued_actions; $enqueued_actions[$hook][] = array('func' => $func, 'imp' => $imp); } /** * Run the enqueued actions with the correct hook. * @param string $hook Hook name. */ function run_action($hook) { global $enqueued_actions; $actions = $enqueued_actions[$hook]; for($i = 0; $i < 9; $i++) { foreach($enqueued_actions[$hook] as $action) { if($action['imp'] == $i) { call_user_func($action['func']); } } } } 

Вы на правильном пути здесь. Возможно, вы захотите сделать перехватчики постоянными, т. Е. Сохранить крючки в базе данных, файле CSV, объектной модели XML и т. Д.

Кроме того, вы можете ввести функцию ради вызова всех действий, которые были зафиксированы на определенном крючке, что-то вроде call_actions($hook);