Edit File by line
/home/zeestwma/ajeebong.../wp-inclu.../Requests/src
File: Hooks.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Handles adding and dispatching events
[2] Fix | Delete
*
[3] Fix | Delete
* @package Requests\EventDispatcher
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
namespace WpOrg\Requests;
[7] Fix | Delete
[8] Fix | Delete
use WpOrg\Requests\Exception\InvalidArgument;
[9] Fix | Delete
use WpOrg\Requests\HookManager;
[10] Fix | Delete
use WpOrg\Requests\Utility\InputValidator;
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Handles adding and dispatching events
[14] Fix | Delete
*
[15] Fix | Delete
* @package Requests\EventDispatcher
[16] Fix | Delete
*/
[17] Fix | Delete
class Hooks implements HookManager {
[18] Fix | Delete
/**
[19] Fix | Delete
* Registered callbacks for each hook
[20] Fix | Delete
*
[21] Fix | Delete
* @var array
[22] Fix | Delete
*/
[23] Fix | Delete
protected $hooks = [];
[24] Fix | Delete
[25] Fix | Delete
/**
[26] Fix | Delete
* Register a callback for a hook
[27] Fix | Delete
*
[28] Fix | Delete
* @param string $hook Hook name
[29] Fix | Delete
* @param callable $callback Function/method to call on event
[30] Fix | Delete
* @param int $priority Priority number. <0 is executed earlier, >0 is executed later
[31] Fix | Delete
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $hook argument is not a string.
[32] Fix | Delete
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $callback argument is not callable.
[33] Fix | Delete
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $priority argument is not an integer.
[34] Fix | Delete
*/
[35] Fix | Delete
public function register($hook, $callback, $priority = 0) {
[36] Fix | Delete
if (is_string($hook) === false) {
[37] Fix | Delete
throw InvalidArgument::create(1, '$hook', 'string', gettype($hook));
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
if (is_callable($callback) === false) {
[41] Fix | Delete
throw InvalidArgument::create(2, '$callback', 'callable', gettype($callback));
[42] Fix | Delete
}
[43] Fix | Delete
[44] Fix | Delete
if (InputValidator::is_numeric_array_key($priority) === false) {
[45] Fix | Delete
throw InvalidArgument::create(3, '$priority', 'integer', gettype($priority));
[46] Fix | Delete
}
[47] Fix | Delete
[48] Fix | Delete
if (!isset($this->hooks[$hook])) {
[49] Fix | Delete
$this->hooks[$hook] = [
[50] Fix | Delete
$priority => [],
[51] Fix | Delete
];
[52] Fix | Delete
} elseif (!isset($this->hooks[$hook][$priority])) {
[53] Fix | Delete
$this->hooks[$hook][$priority] = [];
[54] Fix | Delete
}
[55] Fix | Delete
[56] Fix | Delete
$this->hooks[$hook][$priority][] = $callback;
[57] Fix | Delete
}
[58] Fix | Delete
[59] Fix | Delete
/**
[60] Fix | Delete
* Dispatch a message
[61] Fix | Delete
*
[62] Fix | Delete
* @param string $hook Hook name
[63] Fix | Delete
* @param array $parameters Parameters to pass to callbacks
[64] Fix | Delete
* @return boolean Successfulness
[65] Fix | Delete
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $hook argument is not a string.
[66] Fix | Delete
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $parameters argument is not an array.
[67] Fix | Delete
*/
[68] Fix | Delete
public function dispatch($hook, $parameters = []) {
[69] Fix | Delete
if (is_string($hook) === false) {
[70] Fix | Delete
throw InvalidArgument::create(1, '$hook', 'string', gettype($hook));
[71] Fix | Delete
}
[72] Fix | Delete
[73] Fix | Delete
// Check strictly against array, as Array* objects don't work in combination with `call_user_func_array()`.
[74] Fix | Delete
if (is_array($parameters) === false) {
[75] Fix | Delete
throw InvalidArgument::create(2, '$parameters', 'array', gettype($parameters));
[76] Fix | Delete
}
[77] Fix | Delete
[78] Fix | Delete
if (empty($this->hooks[$hook])) {
[79] Fix | Delete
return false;
[80] Fix | Delete
}
[81] Fix | Delete
[82] Fix | Delete
if (!empty($parameters)) {
[83] Fix | Delete
// Strip potential keys from the array to prevent them being interpreted as parameter names in PHP 8.0.
[84] Fix | Delete
$parameters = array_values($parameters);
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
ksort($this->hooks[$hook]);
[88] Fix | Delete
[89] Fix | Delete
foreach ($this->hooks[$hook] as $priority => $hooked) {
[90] Fix | Delete
foreach ($hooked as $callback) {
[91] Fix | Delete
$callback(...$parameters);
[92] Fix | Delete
}
[93] Fix | Delete
}
[94] Fix | Delete
[95] Fix | Delete
return true;
[96] Fix | Delete
}
[97] Fix | Delete
[98] Fix | Delete
public function __wakeup() {
[99] Fix | Delete
throw new \LogicException( __CLASS__ . ' should never be unserialized' );
[100] Fix | Delete
}
[101] Fix | Delete
}
[102] Fix | Delete
[103] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function