| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | <?php/** * Handles adding and dispatching events * * @package Requests * @subpackage Utilities *//** * Handles adding and dispatching events * * @package Requests * @subpackage Utilities */class Requests_Hooks implements Requests_Hooker {	/**	 * Registered callbacks for each hook	 *	 * @var array	 */	protected $hooks = array();	/**	 * Constructor	 */	public function __construct() {		// pass	}	/**	 * Register a callback for a hook	 *	 * @param string $hook Hook name	 * @param callback $callback Function/method to call on event	 * @param int $priority Priority number. <0 is executed earlier, >0 is executed later	 */	public function register($hook, $callback, $priority = 0) {		if (!isset($this->hooks[$hook])) {			$this->hooks[$hook] = array();		}		if (!isset($this->hooks[$hook][$priority])) {			$this->hooks[$hook][$priority] = array();		}		$this->hooks[$hook][$priority][] = $callback;	}	/**	 * Dispatch a message	 *	 * @param string $hook Hook name	 * @param array $parameters Parameters to pass to callbacks	 * @return boolean Successfulness	 */	public function dispatch($hook, $parameters = array()) {		if (empty($this->hooks[$hook])) {			return false;		}		foreach ($this->hooks[$hook] as $priority => $hooked) {			foreach ($hooked as $callback) {				call_user_func_array($callback, $parameters);			}		}		return true;	}}
 |