Moja odpowiedź dotyczy WordPressa napisanego w PHP, ale jest to ogólna mechanika programistyczna, więc nie powinna mieć większego znaczenia, mimo że w tytule pytania wstawiłeś „python”.
Dobrym przykładem użycia haków, przypadkowo przy tworzeniu stron internetowych, są haki WordPress .
Są one odpowiednio nazwane, ponieważ umożliwiają sposób „zaczepienia się” w niektórych punktach wykonania programu.
Na przykład wp_head to „akcja”, która jest emitowana podczas renderowania motywu WordPress i znajduje się w części, w której renderuje część zawartą w <head>
tagach. Powiedz, że chcesz napisać wtyczkę, która wymaga dodatkowego arkusza stylów, skryptu lub czegoś, co zwykle mieści się w tych tagach. Możesz „podpiąć się” do tej akcji, definiując funkcję, która ma być wywoływana, gdy ta akcja jest emitowana. Coś jak:
add_action('wp_head', 'your_function');
your_function()
może być coś tak prostego jak:
function your_function() {
echo '<link rel="stylesheet" type="text/css" href="lol.css" />';
}
Teraz, gdy WordPress wyemituje tę akcję, wykonując coś podobnego do_action('wp_head');
, zobaczy, że ta akcja your_function()
została „wciągnięta” w tę akcję, więc wywoła tę funkcję ( i przekaże jej wszelkie argumenty, jeśli je podejmie, zgodnie z definicją w dokumentacji dla konkretnego haka) ).
Krótko mówiąc: Pozwala na dodanie dodatkowej funkcjonalności w określonych punktach wykonania programu poprzez „zaczepienie się” w tych punktach, w większości przypadków poprzez przypisanie wywołania zwrotnego funkcji.