<åt sidan class = "s-notice s-notice__info js-post-notice mb16" role = "status">

Stängt . Den här frågan måste vara mer fokuserad . För närvarande accepteras inte svar.

Kommentarer

  • En krokmetod är en konkret metod i en abstrakt klass som kan åsidosättas av underklasser, men den har ett standardbeteende i abstraktklassen.

Svar

Mitt svar avser WordPress som är skrivet i PHP, men detta är en allmän utvecklingsmekaniker så det borde inte ”spelar ingen roll, trots att du lägger” python ”i din frågetitel.

Ett bra exempel på användning av krokar, tillfälligt i webbutveckling, är WordPress ”krokar .

De namnges på lämpligt sätt genom att de tillåter ett sätt att” koppla in ”vissa punkter för genomförandet av ett program.

Så för till exempel är wp_head en ”åtgärd” som avges när ett WordPress-tema återges och det är vid den del där det återger den del som ”s inom taggarna <head>. Säg att du vill skriva ett plugin som kräver ett extra formatmall, skript eller något som normalt skulle ligga inom dessa taggar. Du kan ”koppla in” den här åtgärden genom att definiera en funktion som ska anropas när den här åtgärden avges. Något som:

add_action("wp_head", "your_function"); 

your_function() kan vara något så enkelt som:

function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; } 

Nu när WordPress avger den här åtgärden genom att göra något som do_action("wp_head");, ser det att your_function() var ”ansluten till” den åtgärden, så den kommer att kalla den funktionen ( och skicka den till eventuella argument om den behövs, enligt definitionen i dokumentationen för en viss krok ).

Lång historia: Det låter dig lägga till ytterligare funktioner vid specifika punkter för genomförandet av ett program genom att ”koppla in” dessa punkter, i de flesta fall genom att tilldela en återuppringningsfunktion.

Svar

Beroende på bakgrunden hos den som frågar ibland kan svaret på denna fråga vara så enkelt som krokar vanligtvis är ett annat ord för en händelsehanterare, som Blaenk gav en utmärkt förklaring till.

Det finns också användningar av denna fras som när du injicerar en händelse o r kod in i en process som till exempel inte har händelser som mol .

Kommentarer

  • Tack Bill, mol ser ut som ett .NET-koncept, som är helt främmande för mig, kan du snälla peka på något pythoniskt eller php eller något mer allmänt.
  • Tyvärr gör jag inte ' t använda dessa två nog för att göra anspråk på expertis, men om jag läser det korrekt tror jag stackoverflow.com/questions/156230/… är en liknande idé som diskuteras men mol kan haka i en kompilerad enhet. En miniportförare är en annan plats som krokfrasen används ibland. Min poäng var mer att " krok " terminologi kan användas på annat sätt ibland, i äldre MS-teknik ändå, kanske den andra användningen gäller inte python också.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *