Lorsque je regarde des extraits / tutoriels / plugins WordPress, je vois add_action()
et je suis souvent add_filter()
placé avant que la fonction ne soit déclarée:
add_action( 'publish_post', 'email_friends' );
function email_friends( $post_ID ) {
$friends = '[email protected], [email protected]';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
D'un point de vue logique, cela n'a tout simplement pas de sens pour moi. Pourquoi placeriez-vous la fonction après son appel dans votre code? C'est généralement ainsi que je gérerais la même situation:
function email_friends( $post_ID ) {
$friends = '[email protected], [email protected]';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
add_action( 'publish_post', 'email_friends' );
Je sais que les deux scénarios fonctionnent, mais y a-t-il un avantage spécifique pour l'un ou l'autre? Environ 90% du temps, je vois le premier scénario utilisé, ce qui m'amène à croire qu'il y a un avantage à cela d'une manière ou d'une autre.
la source
Il n'y a pas vraiment de différence en fait, je préfère par exemple suivre le premier scénario, car il est plus pratique de passer des appels en un seul endroit et de définir des fonctions en dessous. PHP analyse tout le document avant d'exécuter quoi que ce soit, et si les fonctions sont correctement définies, tout fonctionnera normalement, aucun avantage dans les deux scénarios.
Je crois que le bon dicton ici est: tout ce qui fait flotter votre bateau :)
la source
call_user_func_array()
est (très probablement) appelé après la définition de votre fonction lors de l'exécutiondo_action
. Vous pouvez donc définir la fonction accrochée n'importe où jusqu'à ce point.4 ans plus tard, mais je suis sûr que cela aidera les gens à venir de la recherche.
Comme d'autres l'ont dit, il n'y a pas de différence car php analyse tout le document et s'exécute dans le bon ordre. Alors, tout ce que vous aimez.
J'aime personnellement le premier style:
J'ai tendance à penser à l'envers. Orienté objectif si vous voulez. Donc j'aime lire: "nous faisons la barre de fonction, en crochet. D'accord, maintenant, que fait la fonction?"
Il définit mieux le contexte de la fonction. Bien sûr, c'est juste ma préférence personnelle. Alors fais ce que tu aimes.
la source