Download wp-includes/Requests/src/Hooks.php from AZILS/Word: direct link, hf CLI and curl.
- Browser
- Download file 3.03 kB
-
https://huggingface.co/spaces/AZILS/Word/resolve/main/wp-includes/Requests/src/Hooks.php
- Command line
-
hf download hf://spaces/AZILS/Word/wp-includes/Requests/src/Hooks.php
-
curl -L -o Hooks.php https://huggingface.co/spaces/AZILS/Word/resolve/main/wp-includes/Requests/src/Hooks.php
3.03 kB
| /** | |
| * Handles adding and dispatching events | |
| * | |
| * @package Requests\EventDispatcher | |
| */ | |
| namespace WpOrg\Requests; | |
| use WpOrg\Requests\Exception\InvalidArgument; | |
| use WpOrg\Requests\HookManager; | |
| use WpOrg\Requests\Utility\InputValidator; | |
| /** | |
| * Handles adding and dispatching events | |
| * | |
| * @package Requests\EventDispatcher | |
| */ | |
| class Hooks implements HookManager { | |
| /** | |
| * Registered callbacks for each hook | |
| * | |
| * @var array | |
| */ | |
| protected $hooks = []; | |
| /** | |
| * Register a callback for a hook | |
| * | |
| * @param string $hook Hook name | |
| * @param callable $callback Function/method to call on event | |
| * @param int $priority Priority number. <0 is executed earlier, >0 is executed later | |
| * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $hook argument is not a string. | |
| * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $callback argument is not callable. | |
| * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $priority argument is not an integer. | |
| */ | |
| public function register($hook, $callback, $priority = 0) { | |
| if (is_string($hook) === false) { | |
| throw InvalidArgument::create(1, '$hook', 'string', gettype($hook)); | |
| } | |
| if (is_callable($callback) === false) { | |
| throw InvalidArgument::create(2, '$callback', 'callable', gettype($callback)); | |
| } | |
| if (InputValidator::is_numeric_array_key($priority) === false) { | |
| throw InvalidArgument::create(3, '$priority', 'integer', gettype($priority)); | |
| } | |
| if (!isset($this->hooks[$hook])) { | |
| $this->hooks[$hook] = [ | |
| $priority => [], | |
| ]; | |
| } elseif (!isset($this->hooks[$hook][$priority])) { | |
| $this->hooks[$hook][$priority] = []; | |
| } | |
| $this->hooks[$hook][$priority][] = $callback; | |
| } | |
| /** | |
| * Dispatch a message | |
| * | |
| * @param string $hook Hook name | |
| * @param array $parameters Parameters to pass to callbacks | |
| * @return boolean Successfulness | |
| * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $hook argument is not a string. | |
| * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $parameters argument is not an array. | |
| */ | |
| public function dispatch($hook, $parameters = []) { | |
| if (is_string($hook) === false) { | |
| throw InvalidArgument::create(1, '$hook', 'string', gettype($hook)); | |
| } | |
| // Check strictly against array, as Array* objects don't work in combination with `call_user_func_array()`. | |
| if (is_array($parameters) === false) { | |
| throw InvalidArgument::create(2, '$parameters', 'array', gettype($parameters)); | |
| } | |
| if (empty($this->hooks[$hook])) { | |
| return false; | |
| } | |
| if (!empty($parameters)) { | |
| // Strip potential keys from the array to prevent them being interpreted as parameter names in PHP 8.0. | |
| $parameters = array_values($parameters); | |
| } | |
| ksort($this->hooks[$hook]); | |
| foreach ($this->hooks[$hook] as $priority => $hooked) { | |
| foreach ($hooked as $callback) { | |
| $callback(...$parameters); | |
| } | |
| } | |
| return true; | |
| } | |
| public function __wakeup() { | |
| throw new \LogicException( __CLASS__ . ' should never be unserialized' ); | |
| } | |
| } | |