Creatig a hooks, фильтрует функциональность с php - PullRequest
0 голосов
/ 15 февраля 2019

Я планирую создать простое приложение, которое включает в себя модульную функциональность, и я планирую использовать аналогичную технологию, которую использует WordPress, которая является хуками!

Я немного покопался и не нашел подходящегоответьте или нашли что-то, но это слишком запутанно, поэтому кто-то может объяснить мне , как работает функциональность хуков и как мы можем реализовать ее с помощью основного PHP!

Мой план - создать домашнюю страницуи добавив модули (например, плагины WordPress) на домашнюю страницу, я сделал основной плагин WordPress и натолкнулся на некоторые хуки, такие как add_action, has_action, remove_action и т. д., и некоторые фильтры, такие как add_filter, has_filter, remove_filter и т. Д.

как мы можем реализовать эти функции с нуля с помощью ядра PHP?

, если есть какой-либо справочный код, блог или простой код для реализации базового привет-мираприложение будет работать!

Я просто пытаюсь узнать что-то новое, пожалуйста, помогите мне добавить эту функцию на домашнюю страницу и объясните мне процесс, если можете!спасибо.

1 Ответ

0 голосов
/ 15 февраля 2019

Мой лучший совет - покопаться в коде WordPress и посмотреть, как они это сделали.

Тем не менее, я понимаю, что WordPress использует php's $$.функциональность.Вы можете прочитать об этом здесь .

Суть в том, скажем, у меня есть переменная $a.Я могу сослаться на него как $a и получить его значение.Однако, допустим, я не знаю, какое значение я хочу получить в $a.Но я знаю, что он находится в переменной с именем $b.То есть $b = "a".$$ позволяет мне сказать: echo $$b, и оно будет отображать значение $a.

Вот более полный пример:

$a = "foo";
$b = "a";

echo $$b;

Вывод:

foo

Аккуратно, да?

Наконец, я должен отметить, что Wordpress применяет $$ к функциям.Будет проще, если я просто сделаю блок кода:

$hooks = array();

function AddHook($hook,$funciton) {
    $hooks[$hook][] = $function;

}

function GetHook($hook) {
    foreach($hooks[$hook] as $func) {
         $func();
    }

}

или что-то в этом роде.Итак, вы можете использовать его следующим образом:

function myFunc() { /* Code */}

AddHook("myHook","myFunc");

GetHook("myHook");

PS Я думаю, это сделало бы Wordpress шаблоном проектирования посредника .

...