Auteur : heiyeluren
Blog : http://blog.csdn.net/heiyeshuwu
Heure : 2008-5-5
Récemment, j'ai simplement utilisé plusieurs frameworks PHP étrangers traditionnels (à l'exclusion des frameworks nationaux) qui sont actuellement utilisés en Chine. J'ai une idée intuitive de ces frameworks que je voudrais partager brièvement, lesquels doivent être utilisés lors de la sélection des frameworks. comme référence.
Les principaux frameworks de référence incluent : CodeIgniter, CakePHP, ZendFramework et Symfony.
Remarque : je n'ai pas utilisé beaucoup de frameworks sérieusement, je les ai juste essayés brièvement. Beaucoup de mes opinions peuvent être immatures ou erronées. :-)
【CodeIgniter】
Site officiel : http://codeigniter.com
Site Web chinois : http://codeigniter.org.cn
Manuel chinois : http://codeigniter.org.cn/user_guide
Tutoriel vidéo : http://codeigniter.org.cn/tutorials
Version de test : CodeIgniter_1.6.1
Avantages :
1. La configuration est simple, toutes les configurations sont configurées à l'aide de scripts PHP et l'efficacité d'exécution est élevée ; il dispose de fonctions de routage de base et peut effectuer le routage dans une certaine mesure ; il dispose de fonctions de mise en page préliminaires et peut créer un certain niveau d'apparence d'interface ; ; la couche base de données est bien encapsulée , avec des fonctionnalités MVC de base
2. Rapide et concis, peu de code, performances d'exécution élevées, cadre simple, facile à utiliser, faible coût d'apprentissage, documentation détaillée, il est livré avec de nombreuses bibliothèques simples et faciles à utiliser et le cadre est adapté aux petites applications
. Inconvénients :
1. Comprenez simplement la couche Modèle en tant qu'opérations de base de données
2. Le cadre 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 des 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 pour faciliter la réutilisation des modèles. La couche d'exploitation des données est bien encapsulée et CodeIgniter n'en utilise pas beaucoup. les modèles de conception trop complexes. Les performances et la lisibilité du code sont bonnes. Quant à la bibliothèque supplémentaire, elle est également plutôt bonne, simple et efficace.
【CakePHP】
Site officiel : http://www.cakephp.org
Manuel chinois : http://www.1x3x.net/cakephp
Tutoriel vidéo : http://search.you.video.sina.com.cn/s?key=cakephp
Version de test : cake_1.1.19.6305
Avantages :
1. CakePHP est 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 ; le niveau de conception est très élégant, il n'est pas livré avec des bibliothèques supplémentaires, toutes les fonctions sont de purs frameworks et l'efficacité d'exécution est pas mal ; la couche de base de données Les fonctions hasOne et hasMany sont très puissantes et adaptées aux traitements métiers complexes ; la fonction de routage et la fonction de configuration ne sont pas mauvaises ; l'échafaudage automatique (échafaudage) est très puissant et adapté aux applications de taille moyenne ; chaque couche de MVC ; et dispose d'une fonction de script de ligne de commande de fonctionnement automatique ;
2. La documentation est relativement complète et a été promue avec succès en Chine. La plupart des gens connaissent CakePHP.
Inconvénients :
1. Un problème très sérieux avec CakePHP est qu'il considère le modèle comme une opération de couche de base de données, ce qui affecte sérieusement sa capacité à fonctionner autrement que la base de données.
2. La fonction de cache de CakePHP est légèrement faible et sa fonction de configuration est légèrement faible ; CakePHP ne convient pas aux applications à grande échelle, mais uniquement aux applications de taille moyenne. Commentaires
:
D'une manière générale, le framework CakePHP représente une époque très importante et représentative du framework PHP, et joue actuellement un rôle très important. De nombreux frameworks auto-écrits imitent la méthode CakePHP, qui est un produit phare révélant les méthodes de développement RoR Agile ; la philosophie de conception consistant à considérer les opérations de base de données comme le seul modèle constitue d'excellents outils pour développer des applications et des prototypes rapides ; de même, il vaut également la peine de le choisir comme cadre de développement pour les sites Web Web 2.0 ;
【Zend Framework】
Site officiel : http://framework.zend.com
Manuel chinois : http://www.phpeye.com/zf
Tutoriel vidéo : http://framework.zend.com/docs/screencasts
Version de test : ZendFramework-1.5.0
Avantages :
1. Produit officiellement, il est livré avec de nombreuses bibliothèques. Le framework lui-même est écrit à l'aide de nombreux modèles de conception. L'architecture est très élégante et l'efficacité d'exécution est moyenne. La conception MVC est relativement simple, possède des fonctions de routage et un fichier de configuration. est relativement puissant (peut gérer XML et php INI), diverses bibliothèques sont très puissantes et ont les fonctions les plus complètes parmi tous les frameworks PHP, y compris le fait qu'il ne s'agit pas seulement d'un framework, mais aussi d'une grande bibliothèque de classes (remplaçant PEAR). sa fonctionnalité principale ; il peut prendre en charge intuitivement la couche Modèle en plus des opérations de base de données (plus puissantes que CodeIgniter et CakePHP), et peut facilement utiliser la fonction Loader pour charger d'autres classes nouvellement ajoutées. La fonction Cache est très puissante et est prise en charge depuis le Cache frontal vers le cache back-end. Le cache du terminal prend en charge Memcache, APC, SQLite, les fichiers, etc. ; la fonction d'exploitation de la base de données est très puissante et prend en charge divers pilotes (adaptateurs) ;
communauté
nationale est très mature, et est actuellement utilisée par de nombreux sites Web 2.0, et le coût d'apprentissage est moyen.
1. La fonction MVC est relativement faible, la couche View est simplement implémentée (tout comme elle ne l'est pas) et elle ne peut pas contrôler la page frontale de manière très puissante.
2. Il n'existe pas de script automatisé. Pour créer une application, y compris le fichier d'entrée, vous devez la créer manuellement. Le coût d'entrée est élevé.
3. Zend Framework n'est pas un gros problème en tant que framework d'application de taille moyenne, et il peut à peine être utilisé comme framework pour des applications à grande échelle. Cependant, en tant que framework PHP à grande échelle très mature, il nécessite encore quelques efforts
. évaluer:
En tant que framework produit officiellement, les ambitions de Zend Framework sont prévisibles. Il souhaite évincer les autres frameworks et en même temps encapsuler de nombreuses bibliothèques de classes puissantes pour fournir des services de framework unique. De plus, leur équipe de développement est très puissante et pleinement compétente. la capacité de développer des produits très puissants, il est 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 la future mise à niveau. De manière générale, Zend Framework est le framework le plus attendu. Bien entendu, il n'y a aucun problème si vous souhaitez l'utiliser dès maintenant dans vos projets.
【Symfony】
Site officiel : http://www.symfony-project.org
Site chinois : http://symfony-project.cn
Le guide définitif : http://www.symfony-project.org/book
Référence d'apprentissage : http://sf.thecodecentral.com
Version de test : symfony-1.0.13
Avantages :
1. Symfony est le framework PHP le plus puissant que je connaisse, et je l'utilise depuis longtemps, mais de nombreuses fonctions n'ont pas encore été découvertes ; il implémente complètement les trois couches de MVC et encapsule tout, y compris $_POST, $_GET Données, gestion des exceptions, fonction de débogage, détection des données ; inclut une fonction de mise en cache puissante, le chargement automatique de la classe (cette fonction est très cool), un puissant support de nationalisation i18n a un fonctionnement de couche de vue très puissant et peut contenir plusieurs fichiers de manière fragmentaire ; Fonction de configuration très puissante. L'utilisation de la configuration yml peut contrôler tous les frameworks et les comportements d'exécution des programmes, ce qui est si puissant que cela laisse les gens sans voix, vous pouvez définir vos propres classes à volonté, et symfony peut automatiquement charger (charger automatiquement) ces classes, qui peut être utilisé dans Peut être appelé à volonté dans le programme ; comprend une puissante gestion de projets et d'applications à plusieurs niveaux : Projet --> Application --> Module --> Action, qui peut répondre aux besoins de plusieurs applications sous un seul projet, et chaque couche peut définir son propre fichier de configuration, sa mise en page ; des 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. ;
2. Symfony est certainement le premier choix pour développer des projets volumineux et complexes, car l'utilisation de Symfony permettra de réduire considérablement les coûts de développement et il n'y aura aucun problème lorsque plusieurs personnes collaboreront. Une fois la classe de base définie au niveau du projet, n'importe quel module peut l'être. réutilisé. Inconvénients de la réutilisation importante du code
:
1. Le modèle de fonctionnement de la base de données utilise des props et des créoles lourds, mais dans la version que j'ai testée, ils ont été déplacés vers l'addon. Ils peuvent être utilisés ou non.
2. La fonction de cache ne peut pas être contrôlée. Le cache est toujours mis en cache à chaque fois pendant le développement et le débogage. Vous devez exécuter symfony cc et symfony rc pour vider et reconstruire le cache ;
3. 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, qui prend beaucoup de temps ;
4. Le coût d'apprentissage est très élevé et il n'existe pas de communauté ni de documentation mature en Chine, pas même un manuel chinois. Par conséquent, il faut beaucoup de temps pour maîtriser toutes les fonctions et
évaluer :
Symfony est définitivement un framework de niveau 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. Naturellement, il est recommandé d'utiliser Symfony. pour les projets complexes, je pense que cela en vaut la peine. Le coût de maintenance dans la phase 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.
[Commentaire général]
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. De manière générale, CodeIngiter est plus adapté aux petits projets, CakePHP et Zend Framework sont plus adaptés. projets de taille moyenne, et Symfony est plus adapté aux projets de grande envergure et lourds. Lors de la sélection des projets, vous devez pleinement prendre en compte la personnalisation et l'évolutivité du framework, car chaque projet ne peut pas déterminer si vous apporterez des modifications à mesure que vos besoins évoluent.
Relativement parlant, Zend Framework et Symfony ont une forte capacité à faire face aux changements, en particulier les classes de la couche modèle qui peuvent être personnalisées à volonté, ce qui rend très pratique l'ajout de vos propres classes professionnelles ou de traitement de données. Je recommande personnellement ces frameworks. utilisation dans des projets moyens et grands. CodeIngiter et CakePHP peuvent également jouer un rôle important dans les projets de petite et moyenne taille, le développement rapide et la construction de prototypes, et sont très adaptés au développement de projets prototypes dont les objectifs ne sont pas clairs. La meilleure façon de comprendre un framework est de l’utiliser, et la meilleure façon de l’apprendre est de regarder des vidéos. :-)
Les personnes bienveillantes ont des opinions différentes et les personnes sages ont des opinions différentes. Lors de la sélection d'un cadre pour un projet, veuillez examiner attentivement les besoins du projet et les changements futurs, puis choisir un cadre approprié pour atteindre un équilibre raisonnable entre la vitesse de développement du projet et. maintenabilité ultérieure. Bien sûr, il est peut-être plus approprié d'écrire un framework vous-même. :-)
J'ai fait une évaluation générale de plusieurs frameworks. Je suppose que beaucoup de choses ne sont pas pertinentes, donc je vais en rester là. Les commentaires et les corrections sont également les bienvenus !