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.
Vous ne pouvez tout simplement pas faire ce qui suit :
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 comme PHP.
Il est préférable que vous puissiez éviter la complexité inutile.
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 en PHP mais Joe Watkins le créateur de pthreads et parallèle a annoncé en février 2019 que :
pthreads ne sera plus maintenu après PHP 7.4 en raison de défauts architecturaux.
Source : Documentation PHP - phtreads
Si vous souhaitez creuser davantage, 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 HTTP Client de Symfony prend également en charge diverses opérations asynchrones (par exemple, requêtes/réponses asynchrones simultanées en streaming et multiplexées).
PHP est un langage interprété, incompatible avec des opérations et des 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 ?
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é.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!