Que sont les crochets? [fermé]

15

Je continue de croiser ce terme dans divers articles de programmation. Cependant, je ne comprends pas ce qu'ils sont et comment les utiliser. Je voulais donc simplement savoir quel est le concept des crochets; si quelqu'un pouvait me lier à quelques exemples, en particulier dans le contexte du développement web, ce serait formidable.

Rasmus
la source
Une méthode hook est une méthode concrète dans une classe abstraite qui peut être remplacée par des sous-classes, mais elle a un comportement par défaut dans la classe abstraite.
gal007

Réponses:

18

Ma réponse concerne WordPress qui est écrit en PHP, mais c'est un mécanisme de développement général, donc cela ne devrait pas vraiment avoir d'importance, malgré le fait que vous ayez mis 'python' dans le titre de votre question.

Un bon exemple d'utilisation des hooks, comme par hasard dans le développement web, sont les hooks de WordPress .

Ils sont nommés de manière appropriée en ce qu'ils permettent de «se connecter» à certains points de l'exécution d'un programme.

Ainsi, par exemple, le wp_head est une `` action '' qui est émise lorsqu'un thème WordPress est rendu et se trouve à la partie où il rend la partie qui se trouve dans les <head>balises. Supposons que vous souhaitiez écrire un plugin qui nécessite une feuille de style, un script ou quelque chose qui irait normalement dans ces balises. Vous pouvez vous «accrocher» à cette action en définissant une fonction à appeler lorsque cette action est émise. Quelque chose comme:

add_action('wp_head', 'your_function');

your_function() pourrait être quelque chose d'aussi simple que:

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

Maintenant, quand WordPress émet cette action en faisant quelque chose comme do_action('wp_head');, il verra que your_function()était « accroché dans » cette action, il appellera cette fonction ( et transmettre des arguments si elle prend tout, tel que défini dans la documentation pour tout hook ).

Pour faire court: il vous permet d'ajouter des fonctionnalités supplémentaires à des points spécifiques de l'exécution d'un programme en les «connectant» à ces points, dans la plupart des cas en attribuant un rappel de fonction.

Jorge Israel Peña
la source
2

Selon le contexte de la personne qui demande parfois, la réponse à cette question peut être aussi simple que les crochets sont généralement un autre mot pour un gestionnaire d'événements, pour lequel Blaenk a donné une excellente explication.

Il y a aussi des utilisations de cette phrase qui sont lorsque vous injectez un événement ou un code dans un processus qui, autrement, n'a pas d'événements comme les taupes par exemple.

Facture
la source
Merci Bill, les taupes ressemblent à un concept .NET, qui m'est totalement étranger, pourriez-vous s'il vous plaît me diriger vers quelque chose de pythonique ou de php ou quelque chose de plus général.
Rasmus
Malheureusement, je ne les utilise pas suffisamment pour revendiquer une expertise, mais si je le lis correctement, je crois que stackoverflow.com/questions/156230/… est une idée similaire en cours de discussion, mais les taupes peuvent accrocher un assemblage compilé. Un pilote de miniport est un autre endroit où la phrase de crochet est parfois utilisée. Mon point était plus que la terminologie "hook" peut être utilisée d'une autre manière parfois, dans les anciennes technologies MS de toute façon, peut-être que la deuxième utilisation ne s'applique pas également à python.
Bill