Jak działa system wtyczek (wordpress, mybb...)?

Jestem ciekaw jak działają wtyczki, wiem tylko, że zamiast zmieniać kod używamy wtyczek, ale jak wykonują swoją pracę bez zmiany kodu ? a co powinien wziąć pod uwagę koder przy kodowaniu nowego projektu, aby mógł mieć pluginy ? i dziękuję bardzo: d

Author: Peter, 2011-02-26

1 answers

Istnieje wiele odmian, jak zaimplementować system wtyczek. Wordpress używa dość powszechnego schematu, często opisywanego jako " Hooki."Nie znam dokładnej implementacji, ale w zasadzie działa tak:

// plugin.php script registers its own callback function
register_plugin("hook_type", "plugin_function_123");

function plugin_function_123($params) { ... }

Gdzie hook_type jest często nazwą akcji lub czymś takim. A gdy główna aplikacja działa przez określony punkt (lub np. potrzebuje jakiegoś procesu danych) wywołuje wszystkie zarejestrowane funkcje callback:

$output = call_plugins("hook_type", $param1, $param2);

Jest to często realizowane za kulisami jako prosta pętla:

foreach ($registered_plugins[$action] as $func) {
    $func($param1, $param2, ...);   // or call_user_func_
}

Teraz zależy od typu hook/action jakie parametry są obecne i czy oczekiwany jest jakikolwiek tekst wynikowy. Istnieją również różnice w przekazywaniu parametrów(np. niektóre wywołania zwrotne wymagają referencji & $var). A niektóre systemy wtyczek opierają się na obiektach (jeśli nie istnieje tak wiele różnych typów akcji lub z bardziej złożonymi strukturami trzeba pracować).

 19
Author: mario,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-26 14:34:11