Skip to content

Commit 531d1ec

Browse files
add action and filter hooks
1 parent fd7b45c commit 531d1ec

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

tests/benchmarks/plugin.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@
33
require dirname(__DIR__) . '/mocks.php';
44

55
// make sure we're not running through all migrations
6-
update_option('koko_analytics_version', '1.6.2');
6+
update_option('koko_analytics_version', '999.1.1');
77

88
$memory = memory_get_usage();
99
$time_start = microtime(true);
1010

1111
require dirname(__DIR__, 2) . '/koko-analytics.php';
1212

13+
do_action('plugins_loaded');
14+
do_action('setup_theme');
15+
do_action('after_setup_theme');
16+
do_action('init');
17+
do_action('wp_loaded');
18+
1319
$time = round((microtime(true) - $time_start) * 1000, 2);
1420
$memory_used = (memory_get_usage() - $memory) >> 10;
1521

tests/mocks.php

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,44 @@
99
define('HOUR_IN_SECONDS', 3600);
1010

1111
$options = [];
12+
$hooks = [];
1213

1314
function is_admin()
1415
{
1516
return false;
1617
}
1718

18-
function apply_filters($a, $b, $prio = 10, $args = 2)
19+
function add_action($hook, $callback, $c = 10, $d = 1)
1920
{
20-
return $b;
21+
global $hooks;
22+
$hooks[$hook] ??= [];
23+
$hooks[$hook][] = $callback;
2124
}
2225

23-
function add_action($hook, $callback, $c = 10, $d = 1)
26+
function do_action($hook, ...$args)
2427
{
25-
if ($hook === 'init') {
26-
$callback();
28+
global $hooks;
29+
$actions = $hooks[$hook] ?? [];
30+
foreach ($actions as $a) {
31+
$a();
2732
}
2833
}
2934

3035
function add_filter($hook, $callback, $c = 10, $d = 1)
3136
{
37+
add_action($hook, $callback, $c, $d);
38+
}
39+
40+
function apply_filters($hook, $value, $prio = 10, $args = 2)
41+
{
42+
global $hooks;
43+
44+
$filters = $hooks[$hook] ?? [];
45+
foreach ($filters as $cb) {
46+
$value = $cb($value);
47+
}
48+
49+
return $value;
3250
}
3351

3452
function add_shortcode($a, $b)

0 commit comments

Comments
 (0)