diff options
Diffstat (limited to 'includes/vendor/rmccue/requests/library/Requests/Hooks.php')
| -rw-r--r-- | includes/vendor/rmccue/requests/library/Requests/Hooks.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/includes/vendor/rmccue/requests/library/Requests/Hooks.php b/includes/vendor/rmccue/requests/library/Requests/Hooks.php new file mode 100644 index 0000000..2e61c73 --- /dev/null +++ b/includes/vendor/rmccue/requests/library/Requests/Hooks.php @@ -0,0 +1,68 @@ +<?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; + } +}
\ No newline at end of file |