recherche
Maisondéveloppement back-endtutoriel php国内C源码PHP框架选择与评价 Yaf Yar Swoole workerman?

对于韩天峰(Rango)的博客 《Yii/Yaf/Swoole 3个框架的压测性能对比》一文分析引起我作为一名 PHPer 的思考:如今PHP 的玩法越来越多,那么在大部分PHP开发中,大家是怎么看待这些框架的呢?而像BAT这些巨头类的企业,PHP开发方向他们是一个什么状态呢?

回复内容:

先放结论:
  1. 需要极致的性能,可以接受代码执行机制和一般的 LAMP 部署方式不一致: Swoole 或 Workerman,本机 ab 压测短连接都能达到1.9W+ requests/sec;
  2. 需要高性能,同时需要包括完整的 MVC 支持在内的全框架特性支持:Phalcon;
  3. 需要高性能,专注于实现,仅需要基础的 URL 路由:Yaf。
Swoole 的运行机制和其他所有框架都不一样,是完整的 FastCGI 模式,即不仅只去除了 Fork 的开销,还消灭了重复性的 init。 因此,也带来了开发时需要注意发布新版本必须重新 reload。 其配套框架似乎能解决此问题,但抱歉未深入研究。
Workerman 的核心要点和 Swoole 一致,但采用了纯 PHP 的 Web Socket 实现。和 Swoole 相比最大的好处是移除了对 C 扩展的需求,但必须采用 CLI 模式运行使其还是无法跑在虚拟主机上,但不管怎么说,起码客户端不需要依赖扩展了。
没有在生产环境中玩过以上两者,不过多评价。

Yaf 也提供了极高的性能,同时不改变原有的 PHPer 的知识架构,只是为了简洁放弃了 DB 有关的封装。但事实上这部分即重,又不是高度重复执行,确实没有必要在扩展层面实现,通过 Composer 随便装个 ORM/ActiveRecord 的包就可以了。 何况对于高性能网站的前端而言,大部分时候是不会允许去碰缓存外的东西的。
Phalcon 比起 Yaf 来说,框架特性和文档都要好很多,性能下降也并不多(仅1/10左右的差异)。
以上两者,一般来说我更推荐 Yaf,架构总是要有取舍的,认清楚 Yaf 没有像其他框架一样提供那么多舒心的特性是有原因的:别在要求高性能的场合玩那些有的没的。

所以,如果是修改较少的内部服务(比如SOA 架构中后端去除 View 了的 BLL 层),或是开放 API 系统之类,那么我推荐 Swoole / Workerman。
如果是团队不想经历较高的学习曲线(实际上面对高性能这个问题时,只有高、较高和非常高这几个选项吧?),那么就用 Yaf / Phalcon 吧。 Yaf Yar Swoole 这三个是C的扩展的框架,workerman应该是原生的PHP写的socket服务器框架。

我觉得这四个不管哪一款都是国内比较优秀的并且令人耳目一新的框架。这四款框架让我们了解到PHP不仅仅局限于做数据库的增删改查,还能实现更多重要的东西。

据我所知像BAT这类巨头企业中早已经有用原生PHP做服务器(类似workerman)类似的应用,而且有交大规模的应用和部署。 Baidu: HHVM,Yaf
阿里:主要用在Web前端
腾讯:以前是纯PHP写的Socket框架PSF,基本已经停用了,Swoole是未来的技术发展方向。 选择 C 源码类型的 PHP 框架的唯一理由是性能。 正在测试yaf框架和HHVM一起用,但不知扩展支持情况 PHP7出来了
Déclaration
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
Objectif de PHP: Construire des sites Web dynamiquesObjectif de PHP: Construire des sites Web dynamiquesApr 15, 2025 am 12:18 AM

PHP est utilisé pour créer des sites Web dynamiques, et ses fonctions principales incluent: 1. Générer du contenu dynamique et générer des pages Web en temps réel en se connectant à la base de données; 2. Traiter l'interaction utilisateur et les soumissions de formulaires, vérifier les entrées et répondre aux opérations; 3. Gérer les sessions et l'authentification des utilisateurs pour offrir une expérience personnalisée; 4. Optimiser les performances et suivre les meilleures pratiques pour améliorer l'efficacité et la sécurité du site Web.

PHP: Gestion des bases de données et logique côté serveurPHP: Gestion des bases de données et logique côté serveurApr 15, 2025 am 12:15 AM

PHP utilise les extensions MySQLI et PDO pour interagir dans les opérations de base de données et le traitement de la logique côté serveur, et traite la logique côté serveur via des fonctions telles que la gestion de session. 1) Utilisez MySQLI ou PDO pour vous connecter à la base de données et exécuter les requêtes SQL. 2) Gérer les demandes HTTP et l'état de l'utilisateur via la gestion de session et d'autres fonctions. 3) Utiliser les transactions pour assurer l'atomicité des opérations de base de données. 4) Empêcher l'injection de SQL, utiliser les connexions de gestion des exceptions et de clôture pour le débogage. 5) Optimiser les performances via l'indexation et le cache, écrivez du code très lisible et effectuez une gestion des erreurs.

Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD)Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD)Apr 15, 2025 am 12:15 AM

L'utilisation de déclarations de prétraitement et l'APD dans PHP peut effectivement empêcher les attaques d'injection SQL. 1) Utilisez PDO pour vous connecter à la base de données et définir le mode d'erreur. 2) Créez des instructions de prétraitement via la méthode de préparation et transmettez des données à l'aide des espaces réservés et exécutez des méthodes. 3) Traitez les résultats de la requête et assurez la sécurité et les performances du code.

PHP et Python: exemples de code et comparaisonPHP et Python: exemples de code et comparaisonApr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

PHP en action: Exemples et applications du monde réelPHP en action: Exemples et applications du monde réelApr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

PHP: Création de contenu Web interactif avec facilitéPHP: Création de contenu Web interactif avec facilitéApr 14, 2025 am 12:15 AM

PHP facilite la création de contenu Web interactif. 1) Générez dynamiquement du contenu en intégrant HTML et affichez-les en temps réel en fonction des données d'entrée ou de base de données utilisateur. 2) Traitez la soumission du formulaire et générez une sortie dynamique pour garantir que HTMLSpecialChars est utilisé pour empêcher les XS. 3) Utilisez MySQL pour créer un système d'enregistrement des utilisateurs, et utilisez des instructions Password_hash et du prétraitement pour améliorer la sécurité. La maîtrise de ces techniques améliorera l'efficacité du développement Web.

PHP et Python: comparaison de deux langages de programmation populairesPHP et Python: comparaison de deux langages de programmation populairesApr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

La pertinence durable de PHP: est-elle toujours vivante?La pertinence durable de PHP: est-elle toujours vivante?Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

See all articles

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles