Enqueue una función (como wordpress add_action)

¿Cómo puedo poner funciones en cola en PHP? Necesito algo que funcione como el sistema add_action de WordPress. Quiero la función en cola, que luego se ejecuta cuando es el momento adecuado.

Editar

Esto parece funcionar perfectamente. ¿Alguien tiene algún consejo para mejorar mi código?

  $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']); } } } } 

Estás en el camino correcto aquí. Sin embargo, es posible que desee que los enlaces sean persistentes, es decir, guardar los enlaces en una base de datos, un archivo CSV, un modelo de objetos XML, etc.

Además, es posible que desee introducir una función para llamar a todas las acciones que se han enganchado a un determinado call_actions($hook); , algo así como call_actions($hook);