Hyperf est un framework PHP CLI extrêmement performant et flexible, alimenté par un serveur coroutine de pointe et un grand nombre de composants testés au combat. En plus de battre de manière décisive les frameworks PHP-FPM dans les benchmarks, Hyperf est unique en termes de flexibilité et de composition. Hyperf est livré avec un injecteur de dépendances compatible AOP (programmation orientée aspect) pour garantir que les composants et les classes sont enfichables et méta-programmables. Tous les composants principaux d'Hyperf suivent strictement les normes PSR et peuvent être utilisés dans d'autres frameworks.
L'architecture d'Hyperf est construite à l'aide d'une combinaison de Coroutines
, Dependency injection
, Events
, Annotations
et AOP
. En plus de fournir MySQL
, Redis
et d'autres clients coroutine courants, Hyperf
fournit également des versions compatibles coroutine du WebSocket server / client
, JSON RPC server / client
, gRPC server / client
, Zipkin/Jaeger (OpenTracing) client
, Guzzle HTTP client
, Elasticsearch client
, Consul client
, ETCD client
, AMQP component
, Apollo configuration center
, Aliyun ACM
, ETCD configuration center
, Token bucket algorithm-based limiter
, Universal connection pool
, Circuit breaker
, Swagger
, Snowflake
, Simply Redis MQ
, RabbitMQ
, NSQ
, Nats
, Seconds level crontab
, Custom Processes
, etc. Par conséquent, les développeurs peuvent complètement éviter d'implémenter des versions compatibles coroutine de ces bibliothèques.
Rassurez-vous, Hyperf reste un framework PHP. Hyperf fournit tous les packages que vous attendez : Middleware
, Event Manager
, Coroutine-optimized Eloquent ORM
(et Model Cache !), Translation
, Validation
, View engine (Blade/Smarty/Twig/Plates/ThinkTemplate)
et plus encore.
Bien qu'il existe de nombreux nouveaux frameworks PHP, nous n'avons toujours pas trouvé de framework associant un design élégant à des performances ultra élevées, ni de framework qui ouvre la voie aux microservices PHP. Avec cette vision à l’esprit, nous continuerons à investir dans l’avenir de ce framework, et vous êtes invités à nous rejoindre pour contribuer au développement open source d’Hyperf.
Hyperspeed + Flexibility = Hyperf
. L’équation cachée dans notre nom témoigne de l’ambition fondatrice d’Hyperf.
Hyperspeed : en tirant parti des coroutines Swoole
et Swow
, Hyperf est capable de gérer des quantités massives de trafic. L'équipe Hyperf a apporté de nombreuses optimisations au framework pour éliminer tout goulot d'étranglement entre l'utilisateur final et notre moteur flamboyant.
Flexibilité : nous pensons que notre composant d’injection de dépendances est le meilleur de sa catégorie. Avec l'aide d' Hyperf DI
, les composants et les classes sont tous enfichables et méta-programmables. A l’inverse, tous les composants Hyperf sont destinés à être partagés avec le monde. Notre engagement envers les normes PSR signifie que vous pouvez utiliser les composants Hyperf dans n'importe quel framework compatible.
Grâce à ces caractéristiques, Hyperf a découvert le potentiel inexploité dans de nombreux domaines : mise en œuvre de serveurs Web, de serveurs de passerelle, de logiciels middleware distribués, d'architecture de microservices, de serveurs de jeux et d'Internet des objets (IoT).
Linux, OS X ou Cygwin, WSL, Windows
PHP8.1+
Swoole 5.0+ ou Swow 1.4+
Outre notre documentation multilingue et bien entretenue, un grand nombre de tests unitaires pour chaque composant garantissent l'exactitude logique. Avant Hyperf
ne soit rendu public (20/06/2019), il était utilisé à titre privé par certaines moyennes et grandes sociétés Internet pour plusieurs services, qui fonctionnaient sans incident depuis des années dans des environnements de production difficiles.
Site officiel https://hyperf.io
Documentation https://hyperf.wiki
Si vous découvrez une vulnérabilité de sécurité dans Hyperf, veuillez envoyer un e-mail à l'équipe Hyperf via [email protected]. Toutes les vulnérabilités de sécurité seront rapidement corrigées.
Ce projet existe grâce à toutes les personnes qui y contribuent. [Contribuer].
Devenez un contributeur financier et aidez-nous à pérenniser notre communauté. [Contribuer]
Soutenez ce projet avec votre organisation ou entreprise. Votre logo apparaîtra ici avec un lien vers votre site Web. [Contribuer]
commande : wrk -c 1024 -t 8 http://127.0.0.1:9501/
Exécution d'un test de 10 s sur http://127.0.0.1:9501/ 8 fils et 1024 connexions Statistiques du sujet Avg Stdev Max +/- Stdevs Latence 10,08 ms 6,82 ms 56,66 ms 70,19 % Demande/Sec 13,17k 5,94k 33,06k 84,12% 1049478 requêtes en 10,10 s, 190,16 Mo de requêtes en lecture/s : 103921,49 Transfert/s : 18,83 Mo
Nano est une distribution Hyperf minimale, sans configuration, sans squelette, qui vous permet de créer rapidement une application Hyperf avec un seul fichier PHP.
GoTask est une bibliothèque permettant de générer un processus go en tant que side-car Swoole et d'établir un IPC bidirectionnel pour décharger les tâches lourdes vers Go. Considérez-le comme un Swoole Taskworker dans Go.
Jet est un client RPC de modèle d'unification, protocole JSONRPC intégré, disponible pour fonctionner dans TOUS les environnements PHP, y compris les environnements PHP-FPM et Swoole/Hyperf.
Box s'engage à contribuer à l'amélioration de l'expérience de programmation des applications Hyperf, en gérant l'environnement PHP et les dépendances associées, en offrant la possibilité de conditionner les applications Hyperf sous forme de programmes binaires, et en fournissant également des services de proxy inverse pour la gestion et le déploiement des applications Hyperf.
Le framework Hyperf est un logiciel open source sous licence MIT.