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
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ć).
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