Często spotykam się z tym terminem w różnych artykułach programistycznych. Nie rozumiem jednak, czym one są i jak można z nich korzystać. Chciałem tylko wiedzieć, jaka jest koncepcja haczyków; gdyby ktoś mógł powiązać mnie z niektórymi przykładami, szczególnie w kontekście tworzenia stron internetowych, byłoby świetnie.
web-development
python
Rasmus
źródło
źródło
Odpowiedzi:
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:your_function()
może być coś tak prostego jak:Teraz, gdy WordPress wyemituje tę akcję, wykonując coś podobnego
do_action('wp_head');
, zobaczy, że ta akcjayour_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.
źródło
W zależności od pochodzenia osoby, która czasami pyta, odpowiedź na to pytanie może być tak prosta, jak haczyki są zwykle innym słowem dla obsługi zdarzenia, co Blaenk podał doskonałe wyjaśnienie.
Istnieją również zastosowania tego wyrażenia, gdy wstrzykujesz zdarzenie lub kod do procesu, który inaczej nie zawiera zdarzeń takich jak na przykład mole .
źródło