Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Éviter les class_exists dans le code WordPress orienté objet

14

Si vous écrivez du code orienté objet pour WordPress (généralement dans le contexte de plugins), vous rencontrerez probablement une vérification class_exists avant d’initialiser une classe. Mais nous devrions commencer à éviter class_exists dans une grande partie de notre code à ce stade (à quelques exceptions près que je vais décrire ci-dessous).

Selon la version de PHP que vous utilisez, cela a du sens. Ou il l’a fait à un moment donné. Depuis PHP 5.3.0, ce n’est plus nécessaire. Au lieu de cela, il est préférable d’utiliser des espaces de noms.

Éviter les class_exists

Vous pouvez voir toutes les exigences pour les différentes versions de WordPress sur cette page, donc si vous travaillez avec des versions héritées de WordPress, l’ensemble de la vérification class_exists pourrait en valoir la peine.

Il y a quand même une remarque importante :

Remarque: Si vous êtes dans un environnement hérité où vous n’avez que des versions plus anciennes de PHP ou de MySQL, WordPress fonctionne également avec PHP 5.2.4+ et MySQL 5.0+, mais ces versions ont atteint la fin de vie officielle et, en tant que telles, peuvent exposer votre site à vulnérabilités de sécurité.

Mais pour la plupart d’entre nous, les environnements d’hébergement modernes prennent en charge au moins PHP 5.3.0, sinon plus, et à cause de cela, nous n’avons pas besoin d’utiliser class_exists.

Cela dit, il n’est pas rare de voir quelque chose comme ça :

Ou comme ceci :

Il y a des années, j’écrivais aussi du code comme celui-ci. Parfois, c’était pour s’interfacer avec une base de code préexistante. D’autres fois, c’était parce que je ne connaissais pas mieux. Le fait est que c’est devenu quelque chose que nous voyons dans le code basé sur WordPress lorsque nous n’avons pas à l’utiliser.

En fait, je dirais que nous ne devrions plus l’utiliser.

Mais plus vous écrivez de code et plus vous lisez de code, plus vous apprenez, n’est-ce pas ? Cela fait partie de la raison d’être des espaces de noms et du chargement automatique.

Alors, comment le code ci-dessus serait-il écrit?

Peut -être comme ça :

Pourtant, cela soulève la question pour certains : comment les espaces de noms aident-ils au lieu d’utiliser class_exists ?

Idéalement, si la même classe existe dans un espace de noms, il y a un problème avec l’espace de noms. N’oubliez pas que vous pouvez considérer un espace de noms comme un package composé de pièces uniques. Et parce qu’ils sont uniques, il ne devrait jamais y avoir une autre pièce ou, dans cette classe, une autre classe qui lui ressemble.

À cette fin, plutôt que d’utiliser des vérifications class_exists, essayez d’utiliser des espaces de noms. Bien sûr, je ne dis pas de revenir en arrière et de refactoriser tout votre code – je ne l’ai pas fait – mais cela ne signifie pas que le code que j’écris ou que je révise inclut l’utilisation ou des recommandations pour.

C’est un changement facile qui peut faire beaucoup pour garder le code plus facile à lire, jonché de moins de conditions (un message pour une autre fois) et le garder beaucoup plus organisé.

Source d’enregistrement: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More