Les avantages et inconvénients des sept frameworks couramment utilisés en PHP

无忌哥哥
Libérer: 2023-04-03 06:32:01
original
9598 Les gens l'ont consulté

Contenu du texte

Pendant longtemps, ce qui a été le plus discuté en PHPer, ce sont les avantages et les inconvénients des différents frameworks PHP. Les informations sur Internet sont également relativement dispersées. Maintenant, j'en ai collecté et résumé plusieurs. frameworks grand public, parmi lesquels je les ai uniquement utilisés. Il existe quatre frameworks : Yii2, Laravel, Yaf et Thinkphp. Par conséquent, la plupart des évaluations des différents frameworks proviennent d'informations en ligne. Si vous avez des questions, veuillez les signaler dans. les commentaires et progressez 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 ; 🎜 >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. Prise en charge de l'outil de gestion des 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 pas mal, 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 (plus puissant que CodeIgniter et CakePHP), et peut facilement. utilisez la fonction Loader pour charger d'autres classes nouvellement ajoutées

7. La fonction Cache est très puissante et prend en charge tout, du cache frontal au 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 diverses méthodes. Une sorte de pilote (adaptateur)

9 La documentation est très complète et elle est très mature dans la communauté domestique

Inconvénients. :

1. La fonction MVC est relativement faible, et la couche View est simple à implémenter (semblable à C'est la même chose que de ne pas être implémentée), et il est impossible de contrôler la page front-end de manière très puissante. .

2. Il n'y a pas de script automatisé, y compris le fichier d'entrée, tout doit être construit manuellement, et le coût d'entrée est élevé

3. , l'application d'une grande quantité de conception orientée 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 officiellement produit , l'ambition de Zend Framework est prévisible. Il veut évincer les autres frameworks et en même temps encapsuler de nombreuses bibliothèques de classes puissantes pour fournir des services de framework à guichet unique. De plus, leur équipe de développement est très puissante et suffisamment capable de développer des systèmes très puissants. produits, il est donc fondamentalement certain que Zend Framework a un brillant avenir, si plus de temps est consacré à l'amélioration du framework. 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 est plutôt bonne

3. Les fonctions hasOne et hasMany de la couche de base de données sont très puissant et relativement 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 PHP Framework est une époque très importante et représentative, et il joue actuellement un rôle très important pour 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 c'est l'idée de conception du seul modèle. C'est un excellent outil pour développer des applications et des prototypes rapides ; de même, il vaut également la peine de 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. Encapsule tout, y compris les données $POST, $GET, la gestion des exceptions, la fonction de débogage, la détection des données

3 Contient une puissante fonction de mise en cache

4. définir diverses classes propres à volonté

5. Prise en charge puissante du langage

6 . Il possède des opérations de couche de vue très puissantes et peut contenir plusieurs fichiers de manière fragmentaire

7. fonction de configuration puissante, utilisant la configuration XML pour contrôler tous les frameworks et les comportements d'exécution du programme

8. Contient une puissante gestion de projets et d'applications à plusieurs niveaux : Projet --> Module d'application --> qui peut répondre aux besoins de plusieurs applications sous un seul projet, et chaque couche peut définir sa propre bibliothèque de classes et son propre fichier de configuration, sa mise en page

9. Fonctions d'opération en ligne de commande très puissantes, y compris la création de projets, la création d'applications, la création de modules. , rafraîchissement du cache, etc.

10. Symfony est certainement le premier choix pour développer des projets volumineux et complexes. Grâce à l'utilisation de Symfony, les coûts de développement seront considérablement réduits et il n'y aura aucun problème lorsque plusieurs personnes seront présentes. collaborer. 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. les styles 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 complexe, difficile à comprendre et à apprendre

3. Être contrôlé. Chaque fois que le développement et le débogage sont toujours 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. fichiers de configuration, ce qui prend beaucoup de temps

5. Le coût d'apprentissage est très élevé, et il n'y a pas de communauté mature ni de documentation chinoise en Chine

Évaluation :

Symfony est certainement un framework au niveau de l'entreprise, la seule chose qui peut apparemment rivaliser avec les 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, elles sont donc naturellement recommandées pour les projets complexes. Il vaut la peine d'utiliser Symfony pour le gérer. Le coût de maintenance dans la période ultérieure 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 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. projets, vous devez être pleinement Considérez la personnalisation et l'extensibilité du cadre, car chaque projet ne peut pas être sûr 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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!