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

Get in Touch

© 2024 Teachers Night Out. All Rights Reserved.