"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > PHP : non, ce n'est pas possible

PHP : non, ce n'est pas possible

Publié le 2024-07-31
Parcourir:813

PHP: no, it

Vous pouvez ajouter « encore » à ce titre ! Parfois, les choses sont ce qu'elles sont simplement parce que personne ne sait comment faire mieux.

Cependant, cela ne veut pas dire que tout est une bonne idée.

PHP ne prend pas en charge l'héritage multiple

Vous ne pouvez tout simplement pas effectuer les opérations suivantes :

class Child extends Parent1, Parent2 {}

Cependant, de nombreux développeurs penseraient qu'il existe de meilleures approches, comme utiliser des interfaces pour forcer les classes à implémenter des comportements spécifiques.

Notez que vous pouvez toujours appliquer une sorte d'héritage multiple à ces interfaces (si cela a vraiment du sens dans votre cas) :

interface A {}
interface B {}
interface C extends A, B {}

Cependant, ce n'est pas pour moi le meilleur argument contre l'héritage multiple. De nombreux langages de programmation se concentrent sur la simplicité et la lisibilité plutôt que sur la complexité.

L'introduction de l'héritage multiple pourrait conduire à de nombreux abus, sans parler du problème Diamonds, qui serait problématique pour les langages de haut niveau tels que PHP.

Il est préférable que vous puissiez éviter la complexité inutile.

PHP ne prend pas en charge le multithreading

De nombreux langages de programmation fournissent des outils intégrés pour exécuter plusieurs threads en même temps (par exemple, Java, C ).

Pthreads a tenté d'introduire le multi-threading dans PHP mais Joe Watkins, le créateur de pthreads et de parallèle, a annoncé en février 2019 que :

pthreads ne seront plus maintenus après PHP 7.4 en raison de défauts architecturaux.

Source : documentation PHP - phtreads

Si vous souhaitez approfondir vos recherches, vous pouvez vérifier parallèle, qui s'inspire de la concurrence Go.

Même si le parallèle est plutôt cool, avez-vous vraiment besoin d'une telle complexité dans votre cas ?

Si vous avez besoin d'un mécanisme intégré pour le traitement asynchrone, c'est désormais possible avec Fibers (depuis PHP 8.1).

Les fibres permettent d'écrire des fonctions interruptibles.

Bien que les fibres soient plutôt cool, avez-vous vraiment besoin d'une telle complexité dans votre cas ?

L'utilisation de solutions tierces telles que ReactPHP ou Swoole pourrait être un meilleur choix, surtout si vous n'avez besoin que d'une boucle d'événements.

Mieux que cela, vous pouvez créer un mécanisme de file d'attente capable de gérer les messages et de réessayer les tâches ayant échoué.

Le composant Symfony HTTP Client prend également en charge diverses opérations asynchrones (par exemple, les demandes/réponses asynchrones simultanées diffusées et multiplexées).

PHP n'est pas destiné au traitement en temps réel

PHP est un langage interprété, incompatible avec les opérations et les systèmes intensifs qui nécessitent une faible latence et une prévisibilité élevée.

Bien que cela soit vrai, pourquoi utiliseriez-vous PHP pour le trading haute fréquence, le streaming, les jeux en ligne ou la supervision de haut niveau de machines et de processus ?

Conclure

PHP est destiné au Web et à de nombreuses autres utilisations créatives que vous connaissez peut-être.

J'espère qu'il conservera sa simplicité, car c'est définitivement une fonctionnalité.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/spo0q/php-no-its-not-possible-4ji6?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3