Cet article vous apporte un résumé des avantages et des inconvénients de plusieurs frameworks PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Pendant longtemps, ce qui est le plus discuté dans PHPer, ce sont les avantages et les inconvénients des différents frameworks PHP. Les informations sur Internet sont également relativement dispersées. J'ai maintenant collecté et résumé plusieurs frameworks grand public. Je n'ai utilisé que Yii2, Laravel et Yaf, Thinkphp, ces quatre frameworks, donc la plupart des évaluations des différents frameworks proviennent d'informations en ligne. S'il y a des problèmes, veuillez les signaler dans les commentaires et progresser ensemble.
1. ThinkPHP
ThinkPHP (FCS) est un framework léger de taille moyenne, qui est un framework de développement PHP chinois transplanté de la structure Struts de Java. Il utilise une structure de développement orientée objet et le mode MVC et simule l'implémentation de la bibliothèque de balises Struts. Il est plus convivial à tous égards. Il est relativement facile à démarrer pour les développeurs familiarisés avec J2EE et convient aux débutants. Cadre PHP. L'objectif de ThinkPHP est de simplifier le développement, d'améliorer l'efficacité et d'être facile à étendre. Sa prise en charge de base de données inclut déjà la prise en charge de MySQL, MSSQL, Sqlite, PgSQL, Oracle et PDO. ThinkPHP dispose d'une documentation et d'exemples riches, et le framework a une forte compatibilité, mais ses fonctions sont limitées, il est donc plus adapté au développement de projets de petite et moyenne taille.
Avantages
1. Avec l'aide d'idées Java matures
2 Démarrage facile avec une documentation chinoise riche ; faible coût d'apprentissage et activité communautaire élevée
<.>3. Le framework a une forte compatibilité, PHP4 et PHP5 sont entièrement compatibles et prennent entièrement en charge UTF8, etc.
4. Convient au développement de projets de petite et moyenne taille
5. Introduction de l'outil de gestion de packages composer à partir de thinkphp3.2.2
Inconvénients
1. Support Ajax Le support n'est pas très bon ;
2 La structure des répertoires est déroutante, ce qui est pire que celle des autres frameworks
3. difficile d'apprendre en profondeur.
2. Yii
Yii est un framework PHP hautes performances basé sur des composants pour développer des applications Web à grande échelle. Yii est écrit en POO stricte et dispose de références de bibliothèque complètes et de didacticiels complets. De MVC, DAO/ActiveRecord, widgets, mise en cache, RBAC hiérarchique, services Web, jusqu'aux thèmes, I18N et L10N, Yii fournit presque tout ce dont vous avez besoin pour le développement d'applications Web 2.0 d'aujourd'hui. En fait, Yii est l’un des frameworks PHP les plus efficaces.
Avantages
1. Pure OOP
2 Utilisé pour les applications Web à grande échelle
3. 🎜>4. Développez-vous rapidement et exécutez rapidement. Excellentes performances et fonctionnalités riches
5. Utilisez les outils de ligne de commande.
6. Prise en charge de l'outil de gestion des packages Composer
Inconvénients :
1. Moins de conseils et de considération pour la couche Modèle
2. >
3. Trop d'anglais
4. Nécessite une maîtrise de la technologie PHP et une maîtrise de la programmation POO !
5. La vue n'est pas une vue idéale. La vue idéale peut être simplement du code HTML et n'impliquera pas de code PHP.
3. Laravel
Avantages
1 L'idée de conception de Laravel est très avancée et est très adaptée à l'application de divers modèles de développement TDD, DDD et BDD
2. outil de gestion de packages composer
3. Il intègre des fonctionnalités relativement nouvelles de PHP, ainsi que divers modèles de conception, conteneurs Ioc, injection de dépendances, etc.
Inconvénients
1. Basé sur un framework basé sur des composants, il est donc relativement volumineux
4 CodeIgniter
Avantages :
1.Code Igniter prône le principe « la simplicité est belle ». Il n’y a pas de modèles de conception fantaisistes, pas de structures d’objets fantaisistes, tout est si simple. Il suffit de quelques lignes de code pour commencer à s'exécuter et de quelques lignes de code supplémentaires pour sortir. On peut dire que c'est un modèle de « grande simplicité ».
2. La configuration est simple, toutes les configurations sont configurées à l'aide de scripts PHP et l'efficacité d'exécution est élevée
3. Il possède des fonctions de routage de base et peut effectuer du routage dans une certaine mesure ;
4. Possède une fonction de mise en page préliminaire et peut créer un certain niveau d'apparence d'interface ;
5. La couche de base de données est bien encapsulée et possède des fonctions MVC de base. Rapide et concis, le code n'est pas compliqué Beaucoup, hautes performances d'exécution,
7 Le framework est simple, facile à utiliser, faible coût d'apprentissage et la documentation est détaillée
8. Il est livré avec de nombreuses bibliothèques simples et faciles à utiliser, et le framework est adapté aux petites applications
Inconvénients :
1 La mise en œuvre elle-même n'est pas idéale.
2. La structure interne est trop déroutante. Bien qu'elle soit simple et facile à utiliser, elle manque de capacités d'extension.
3. Comprenez simplement la couche Modèle comme une opération de base de données
4. Le framework est légèrement simple et ne peut répondre qu'aux besoins des petites applications, mais est légèrement moins capable de répondre aux besoins. d'applications de taille moyenne.
Évaluation :
D'une manière générale, il vaut la peine d'utiliser CodeIgniter pour réaliser des applications simples et rapides. En même temps, il peut construire un certain degré de mise en page. faciliter la réutilisation des modèles. La couche d'opération de données est bien encapsulée et CodeIgniter Il n'utilise pas beaucoup de modèles de conception trop complexes, et les performances d'exécution et la lisibilité du code sont toutes deux bonnes. Quant à la bibliothèque supplémentaire, elle est également plutôt bonne, simple et efficace.
5. Zend Framework
Avantages :
1. Un grand nombre de nouvelles fonctionnalités orientées objet dans PHP5 sont appliquées : interfaces, exceptions, classes abstraites, SPL, etc. . L'application de ces éléments rend Zend Framework hautement modulaire et flexible
2 Suivre strictement les principes de "programmation pour les interfaces" et de "responsabilité d'un seul objet"
3. beaucoup de bibliothèques, et le framework lui-même est écrit en utilisant de nombreux modèles de conception. Il est très élégant dans son architecture et a une efficacité d'exécution moyenne
4. Conception MVC, relativement simple
5. Il a une fonction de routage. Le fichier de configuration est relativement puissant (peut gérer XML et php INI)
6 Il peut prendre en charge intuitivement la couche Modèle en plus des opérations de base de données (mieux que CodeIgniter et CakePHP), et peut facilement. utilisez la fonction Loader pour charger d'autres Le Class
7.Cache nouvellement ajouté est très puissant et prend en charge à la fois le cache frontal et le cache back-end. Le cache back-end prend en charge Memcache, APC, SQLite, les fichiers, etc.
8. La fonction d'exploitation de la base de données est très puissante et prend en charge divers pilotes (adaptateurs)
9. La documentation est très complète et elle est très mature dans la communauté domestique
Inconvénients :
1. Fonction MVC La complétion est relativement faible, la couche View est simplement implémentée (la même que celle non implémentée) et elle ne peut pas contrôler la page front-end de manière très puissante
2. script. Pour créer une application, y compris le fichier d'entrée, tout doit être construit manuellement par vous-même. Mise en route Coût élevé
3. Pour les projets simples et petits, l'application d'un grand nombre de conceptions orientées objet dans. le framework met en avant des exigences plus élevées pour les développeurs, ce qui augmente indirectement le coût de développement du projet
Évaluation :
En tant que framework officiel, l'ambition de Zend Framework est prévisible. Il veut évincer les autres frameworks, tout en encapsulant. de nombreuses bibliothèques de classes puissantes pour fournir des services de framework à guichet unique, et l'équipe de développement est très solide et pleinement capable de développer des produits très puissants. Par conséquent, il est fondamentalement certain que Zend Framework a un brillant avenir si plus de temps est consacré à son amélioration. le cadre. De même, l'architecture du Zend Framework elle-même est relativement élégante, ce qui montre que Zend compte officiellement de nombreux experts et est relativement avancé dans les concepts de conception. Bien que certaines fonctions ne soient pas entièrement implémentées, comme la couche View, les scripts d'automatisation, etc., tout cela dépend. sur l'avenir. Mise à niveau
6. CakePHP
Avantages :
1. Le framework le plus similaire à RoR, y compris la méthode de conception et la méthode Active Record de fonctionnement de la base de données
.
2. Le niveau de conception est très élégant, il n'y a pas de bibliothèque supplémentaire, toutes les fonctions sont de purs frameworks et l'efficacité d'exécution n'est pas mauvaise
3. Les fonctions hasOne et hasMany de la couche de base de données sont très puissant et plus adapté au traitement commercial complexe. Adapté
4. Fonction de routage, la fonction de configuration est modérément difficile
5. L'échafaudage automatique (échafaudage) est très puissant et convient aux entreprises de taille moyenne. applications
6. MVC implémenté essentiellement à chaque couche
7 Il a pour fonction d'exécuter automatiquement des scripts de ligne de commande
8 La documentation est relativement complète et le coût d'apprentissage. est moyen
Inconvénients :
1. CakePHP est très Le problème sérieux est que le modèle est compris comme une opération de couche de base de données, ce qui affecte sérieusement la capacité de fonctionner autre que la base de données
2. La fonction de cache est légèrement faible
3. La fonction de configuration est légèrement faible
4. Ne convient pas aux applications à grande échelle, convient uniquement aux applications de taille moyenne. le coût d'apprentissage est légèrement plus élevé pour les petites applications.
Évaluation :
En général, le framework CakePHP représente l'importance du framework PHP Une époque et représentatif de RoR, et il joue actuellement un rôle très important dans beaucoup. les frameworks auto-écrits imitent la méthode CakePHP, qui est un produit phare ; CakePHP révèle la méthode de développement agile de RoR et considère les opérations de base de données comme le seul modèle. L'idée de conception est un excellent outil pour développer des applications et des prototypes rapides ; choisir comme cadre de développement pour les sites Web Web2.0
7. Symfony
Avantages :
1 Implémente complètement trois couches de MVC
2. tout, y compris les données $POST, $GET, la gestion des exceptions, la fonction de débogage, la détection des données
3. Comprend une puissante fonction de mise en cache
4. Charge automatiquement la classe et peut définir librement vos propres classes.
5. Prise en charge puissante du langage
6. Possède de nombreuses fonctionnalités Opération de couche de vue puissante, capable de contenir plusieurs fichiers en morceaux
7. Fonction de configuration très puissante, utilisant la configuration XML. pour contrôler tous les frameworks et les comportements d'exécution des programmes
8. Contient une puissante gestion de projets et d'applications à plusieurs niveaux : Projet --> Application --> applications sous un seul projet, et chaque couche peut définir sa propre bibliothèque de classes, son fichier de configuration, sa mise en page
9. Fonctions d'opération de ligne de commande très puissantes, y compris la création de projets, la création d'applications, la création de modules, l'actualisation du cache, etc.
10.Symfony est définitivement le premier choix pour développer des projets volumineux et complexes, car l'utilisation de Symfony permettra d'économiser considérablement les coûts de développement, et il n'y aura aucun problème lorsque plusieurs personnes collaboreront après avoir défini la classe de base au niveau du projet. , n'importe quel module peut être réutilisé, réutilisant grandement le code.
Inconvénients :
1 Le plus gros problème est que trop de projets open source avec des styles différents sont utilisés pour se combiner dans un framework
.
2. Étant donné que Mojavi et Propel eux-mêmes sont assez complexes, la structure de Symfony est très compliquée et difficile à comprendre et à apprendre
3 La fonction de cache ne peut pas être contrôlée à chaque fois. mis en cache, vous devez exécuter symfony cc, symfony rc pour vider et reconstruire le cache
4 L'efficacité n'est pas très élevée, en particulier le processus d'analyse des modèles et de lecture des fichiers de configuration prend beaucoup de temps
.
5. Le coût d'apprentissage est élevé et il n'y a pas de communauté mature ni de documentation chinoise en Chine
Évaluation :
Symfony est définitivement les seuls frameworks de niveau entreprise qui peuvent apparemment rivaliser avec les des frameworks puissants dans le domaine Java. Les choses puissantes sont naturellement compliquées à apprendre, mais elles sont également utiles pour le développement de projets. Naturellement, il est recommandé d'utiliser Symfony pour gérer des projets complexes. le stade est relativement faible et la réutilisabilité est très forte. En conséquence, si vous utilisez Symfony pour des projets Internet plus complexes, vous devez considérer la question de la distribution de la base de données. Ensuite, vous devez abandonner la couche d'opération de base de données fournie avec Symfony et la définir vous-même. Bien sûr, Symfony prend en charge la construction arbitraire de la couche de modèle. 🎜>
Bilan global :
Les frameworks ci-dessus ont chacun leurs propres caractéristiques, et ce sont tous des projets open source. Cependant, les projets ciblés par les frameworks sont différents :
Petits projets : CodeIngiter
2. . Projets de taille moyenne : CakePHP, Zend Framework, Laravel, Thinkphp
3. Projets lourds à grande échelle : Yii, Symfony, Laravel
Les divisions ci-dessus ne sont pas absolues. vous devez pleinement considérer le cadre. Peut être personnalisé et étendu, car chaque projet ne peut pas déterminer si vous apporterez des modifications à mesure que vos besoins évoluent
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!