Maison titres Les fondateurs de PHP et Swoole ont voté contre, et la proposition de coroutine Fiber a suscité un débat houleux.

Les fondateurs de PHP et Swoole ont voté contre, et la proposition de coroutine Fiber a suscité un débat houleux.

Mar 16, 2021 pm 06:01 PM
php

La

communauté PHP a lancé un vote la semaine dernière (8 mars) pour ajouter le Fiber RFC à PHP.

Selon la description dans Fiber RFC, Fiber est principalement utilisé pour implémenter des coroutines pour les E/S asynchrones, fournissant des fonctions indépendantes d'allocation de pile, de pause et de reprise pour les appels de fonction, et il sera intégré à PHP. comme extension Dans : https://github.com/amphp/ext-fiber.

Selon le plan, le vote se clôturera le 22 mars. Les dernières données sont de 38 voix pour et 11 voix contre. À en juger par les résultats actuels, le Fiber RFC est susceptible d'être ajouté à PHP par le biais d'un vote (avec 2/3 des votes oui).

Les fondateurs de PHP et Swoole ont voté contre, et la proposition de coroutine Fiber a suscité un débat houleux.

Les résultats actuels du vote public montrent que les deux fondateurs - le fondateur de PHP Rasmus Lerdorf et le fondateur de Swoole Han Tianfeng @matyhtf ont tous deux voté contre.

Swoole est un framework de coroutine PHP qui fournit une prise en charge de la coroutine et de la programmation réseau hautes performances pour PHP, et fournit des modules serveur et client réseau pour plusieurs protocoles de communication, qui peuvent implémenter rapidement et facilement les services TCP/UDP. , Web haute performance, services WebSocket, Internet des objets, communications en temps réel, jeux, microservices, etc., font que PHP ne se limite plus au domaine traditionnel du Web. (Depuis l'introduction du site officiel de Swoole)

Un post sur Reddit citait le e-mail envoyé par @matyhtf en PHP, c'était a mentionné qu'il craignait que Fiber ne puisse être utilisé que dans des frameworks comme AmPHP et ne serait d'aucune valeur pour d'autres projets Web PHP ordinaires. Cet article a suscité de nombreuses discussions sur Reddit. Certaines personnes pensent que Fiber est une version améliorée du générateur. Il s'agit d'une implémentation minimale de coroutines et n'aura pas d'impact négatif sur PHP. Son intégration dans PHP est propice au développement et à l'exploration. de l’écologie asynchrone du futur. Certaines personnes ont également remis en question le fait que @matyhtf ait voté contre parce qu'il s'inquiétait de l'impact que cette proposition aurait sur la commercialisation du Swoole (Swoole Plus).

Les fondateurs de PHP et Swoole ont voté contre, et la proposition de coroutine Fiber a suscité un débat houleux.

Quelqu'un a déplacé ce message vers la communauté domestique, ce qui a également provoqué de vives discussions. @matyhtf a répondu en affirmant que Fiber n'est pas encore terminé et devrait d'abord être validé en tant qu'extension PECL, plutôt que directement intégré à PHP. La réponse de @matyhtf sur Zhihu a écrit  :

Ce que je veux exprimer, c'est que "La fibre est principalement utilisée par les frameworks asynchrones implémentés par PHP tels que amphp et reactphp. Pas beaucoup de valeur pour les projets Web PHP normaux".

......

Mon point de vue concernant Fiber RFC est qu'il est recommandé d'être d'abord une extension PECL, et les développeurs principaux de PHP peuvent réfléchir clairement au système technique global et implémentation des futures coroutines de PHP avant de le faire. En fait, la programmation asynchrone bouleverse la philosophie de conception et le modèle de programmation de longue date de PHP. Si le langage PHP décide officiellement de prendre en charge les modèles de programmation simultanée asynchrone/coroutine comme Node.js, Golang et Swoole, il devra alors réfléchir systématiquement à l'architecture globale et à la mise en œuvre complète.

@matyhtf a déclaré que son vote contre le Fiber RFC n'avait rien à voir avec Swoole, car Swoole est un projet technologique purement open source, pas un produit commercial. Si possible, il est même prêt à modifier les droits d'auteur de Swoole et à contribuer le code source de swoole-src à php-src. Cependant, concernant la proposition de PHP de prendre en charge les coroutines, il estime qu'il s'agit d'un changement majeur qui devrait être discuté en profondeur et repensé du point de vue de la syntaxe, de la bibliothèque standard et de ZendVM, plutôt que de prendre une décision hâtive.

Les fondateurs de PHP et Swoole ont voté contre, et la proposition de coroutine Fiber a suscité un débat houleux.

@matyhtf a continué à publier un article (Fiber RFC à propos de PHP 8.1) expliquant en détail les raisons de son opposition à Fiber RFC à partir de détails techniques. Il estime que ce dont les utilisateurs ont réellement besoin, c'est d'un ensemble complet, systématique, facile à utiliser et fiable de solutions techniques. Sur la base de sa propre expérience, il a proposé sept aspects à considérer :

  • .

    API EventLoop

  • Coroutine (correspondant à ext-fiber)

  • Planificateur IO (Socket/FileSystem/ChildProcess/Signal /Timer/ Stdout/Stdin)

  • Planificateur CPU

  • Comment les extensions IO de blocage synchrone existantes (redis, curl, php_stream, sockets, mysqli, pdo_mysql, etc.) et les fonctions intégrées (sleep, shell_exec, sleep, gethostbyname, etc.) peuvent prendre en charge coroutines, deviennent mode asynchrone non bloquant

  • Communication coroutine (canal)

  • Serveur : implémenter la version coroutine PHP-FPM, ou fournir un nouvelle coroutine Cheng HttpServer

Bien que @matyhtf ait donné de bonnes raisons de voter contre, du point de vue actuel, de nombreuses personnes n'approuvent pas son approche. Ils pensent que même s'il est très difficile de mettre en œuvre la coroutineisation de PHP, il n'est pas nécessaire d'attendre qu'il existe une solution mature avant de la fusionner. Ils ne peuvent pas non plus deviner que simplement parce que Fiber n'est pas assez parfaite, elle ne peut pas répondre aux exigences de. la plupart des gens. Au contraire, étant donné que Fiber est une implémentation minimale, son intégration dans PHP n'entraînera pas une grosse charge de maintenance pour les utilisateurs, mais elle peut répondre aux besoins du projet de nombreuses personnes. Ils peuvent réaliser davantage d'implémentations sur cette base, ouvrant ainsi diverses possibilités. que les utilisateurs peuvent explorer. La possibilité d'une solution coroutine.

Par conséquent, ce groupe de développeurs ne voit aucune raison de s'opposer à l'ajout de Fibre RFC à PHP. Les deux partis pensent selon des perspectives différentes, ils ont donc donné des résultats de vote complètement opposés, et ils ont tous deux leurs propres positions - bien que l'intention initiale soit d'améliorer PHP, dans tous les cas, les résultats du vote finiront par prévaloir.


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.