Autor: heiyeluren
Blog: http://blog.csdn.net/heiyeshuwu
Hora: 2008-5-5
Recientemente, simplemente utilicé varios marcos PHP extranjeros convencionales (excluyendo los marcos nacionales) que se usan actualmente en China. Tengo una idea intuitiva sobre estos marcos. Me gustaría compartirlos brevemente. ¿Cuáles deberían usarse al seleccionar los marcos? como referencia.
Los principales marcos de referencia incluyen: CodeIgniter, CakePHP, ZendFramework y Symfony.
Nota: No he usado muchos marcos en serio, solo los probé brevemente. Muchas de mis opiniones pueden ser inmaduras o incorrectas. :-)
【CodeIgniter】
Sitio web oficial: http://codeigniter.com
Sitio web chino: http://codeigniter.org.cn
Manual chino: http://codeigniter.org.cn/user_guide
Vídeo tutorial: http://codeigniter.org.cn/tutorials
Versión de prueba: CodeIgniter_1.6.1
Ventajas:
1. La configuración es simple, todas las configuraciones se configuran mediante scripts PHP y la eficiencia de ejecución es alta; tiene funciones de enrutamiento básicas y puede realizar enrutamiento hasta cierto punto, tiene funciones de diseño preliminares y puede crear un cierto nivel de apariencia de interfaz; la capa de base de datos está bien encapsulada, con funcionalidad MVC básica;
2. Rápido y conciso, sin mucho código, alto rendimiento de ejecución, marco simple, fácil de usar, bajo costo de aprendizaje, documentación detallada, viene con muchas bibliotecas simples y fáciles de usar, y el marco es adecuado para aplicaciones pequeñas
. Desventajas:
1. Simplemente comprenda la capa de modelo como operaciones de base de datos.
2. El marco es un poco simple y solo puede satisfacer las necesidades de aplicaciones pequeñas, pero es un poco menos capaz de satisfacer las necesidades de aplicaciones medianas
. Evaluación:
En términos generales, vale la pena usar CodeIgniter para completar aplicaciones simples y rápidas. Al mismo tiempo, puede construir un cierto grado de diseño para facilitar la reutilización de plantillas. La capa de operación de datos está bien encapsulada y CodeIgniter no usa muchas. patrones de diseño demasiado complejos. Tanto el rendimiento como la legibilidad del código son buenos. En cuanto a la biblioteca adicional, también es bastante buena, sencilla y eficiente.
【CakePHP】
Sitio web oficial: http://www.cakephp.org
Manual chino: http://www.1x3x.net/cakephp
Vídeo tutorial: http://search.you.video.sina.com.cn/s?key=cakephp
Versión de prueba: cake_1.1.19.6305
Ventajas:
1. CakePHP es el marco más similar a RoR, incluido el método de diseño y el método de operación de base de datos Active Record, el nivel de diseño es muy elegante, no viene con bibliotecas adicionales, todas las funciones son marcos puros y la eficiencia de ejecución es alta; no está mal; las funciones hasOne y hasMany de la capa de base de datos son muy poderosas y adecuadas para procesos comerciales complejos; la función de enrutamiento y la función de configuración no son malas; el andamio automático (andamio) es muy adecuado para aplicaciones de tamaño mediano; cada capa de MVC y tiene función de script de línea de comando de operación automática;
2. La documentación es relativamente completa y se ha promocionado con éxito en China. La mayoría de la gente conoce CakePHP.
Desventajas:
1. Un problema muy grave con CakePHP es que entiende el modelo como una operación de capa de base de datos, lo que afecta seriamente su capacidad para operar fuera de la base de datos.
CakePHP
no es adecuado para aplicaciones a gran escala, pero solo para aplicaciones de tamaño mediano. El costo de aprendizaje es ligeramente mayor para aplicaciones de pequeña escala.
En términos generales, el marco CakePHP representa una era muy importante y representativo del marco PHP, y actualmente desempeña un papel muy importante. Muchos marcos escritos por usted mismo imitan el método CakePHP, que es un producto emblemático que revela los métodos de desarrollo RoR Agile; la filosofía de diseño de considerar las operaciones de bases de datos como único modelo son excelentes herramientas para desarrollar aplicaciones y prototipos rápidos; de manera similar, también vale la pena elegirlo como marco de desarrollo para sitios web Web 2.0;
【Zend Framework】
Sitio web oficial: http://framework.zend.com
Manual chino: http://www.phpeye.com/zf
Vídeo tutorial: http://framework.zend.com/docs/screencasts
Versión de prueba: ZendFramework-1.5.0
Ventajas:
1. Producido oficialmente, viene con muchas bibliotecas. El marco en sí está escrito utilizando muchos patrones de diseño. La arquitectura es muy elegante y la eficiencia de ejecución es media. El diseño MVC es relativamente simple, tiene funciones de enrutamiento y archivos de configuración. es relativamente poderoso (puede manejar XML y php INI), varias bibliotecas son muy poderosas y tienen las funciones más completas entre todos los marcos PHP, incluido el hecho de que no es solo un marco, sino también una biblioteca de clases grande (que reemplaza a PEAR). su característica principal puede soportar intuitivamente la capa de Modelo además de las operaciones de base de datos (más fuerte que CodeIgniter y CakePHP), y puede usar fácilmente la función Cargador para cargar otras Clases recién agregadas; la función Caché es muy poderosa y es compatible con el; caché de front-end a caché de back-end. El caché del terminal admite Memcache, APC, SQLite, archivos, etc., la función de operación de la base de datos es muy poderosa y admite varios controladores (adaptadores).
2. La documentación es muy completa, la comunidad nacional es muy madura y actualmente la utilizan muchos sitios web Web 2.0 y el costo de aprendizaje es medio
.
1. La función MVC es relativamente débil, la capa de Vista simplemente se implementa (al igual que no se implementa) y no puede controlar la página de inicio de manera muy poderosa.
2. No existe un script automatizado. Para crear una aplicación, incluido el archivo de entrada, debe crearla manualmente. El costo de entrada es alto.
3. Zend Framework no es un gran problema como marco de aplicación de tamaño mediano y apenas se puede utilizar como marco para aplicaciones a gran escala. Sin embargo, como marco PHP a gran escala muy maduro, todavía necesita algunos esfuerzos
. evaluar:
Como marco producido oficialmente, las ambiciones de Zend Framework son previsibles: quiere desplazar a otros marcos y al mismo tiempo encapsular muchas bibliotecas de clases poderosas para proporcionar servicios de marco integrales. Con la capacidad de desarrollar productos muy potentes, es básicamente seguro que Zend Framework tiene un futuro brillante si se dedica más tiempo a mejorar el marco. De manera similar, la arquitectura Zend Framework en sí es relativamente elegante, lo que demuestra que Zend tiene oficialmente muchos expertos y está relativamente avanzado en conceptos de diseño. Aunque algunas funciones no están completamente implementadas, como la capa de Vista, los scripts de automatización, etc., todo depende. en el futuro. En términos generales, Zend Framework es el marco más esperado. Por supuesto, no hay problema si desea utilizarlo en sus proyectos ahora.
【Symfony】
Sitio web oficial: http://www.symfony-project.org
Sitio web chino: http://symfony-project.cn
La guía definitiva: http://www.symfony-project.org/book
Referencia de aprendizaje: http://sf.thecodecentral.com
Versión de prueba: Symfony-1.0.13
Ventajas:
1. Symfony es el marco PHP más poderoso que conozco y lo he estado usando durante mucho tiempo, pero aún no se han descubierto muchas funciones. Implementa completamente las tres capas de MVC y encapsula todo, incluidos $_POST, $_GET; Datos, manejo de excepciones, funciones de depuración, detección de datos; incluye potentes funciones de almacenamiento en caché, carga automática de clases (esta función es genial), potente soporte de nacionalización i18n y operaciones de capa de vista muy potentes que pueden contener varios archivos de forma fragmentada; Una función de configuración muy poderosa. El uso de la configuración yml puede controlar todos los marcos y comportamientos de ejecución del programa, lo cual es tan poderoso que deja a la gente sin palabras. Puede definir varias clases propias a voluntad, y Symfony puede cargar automáticamente estas clases. que se puede utilizar en Se puede llamar a voluntad en el programa, incluye una potente gestión de proyectos y aplicaciones de varios niveles: Proyecto --> Aplicación --> Módulo --> Acción, que puede satisfacer las necesidades de múltiples aplicaciones en un proyecto. y cada capa puede definir su propia biblioteca de clases. Archivos de configuración, diseño, funciones de operación de línea de comando muy potentes, que incluyen creación de proyectos, creación de aplicaciones, creación de módulos, actualización de caché, etc.
2. Symfony es definitivamente la primera opción para desarrollar proyectos grandes y complejos, porque usar Symfony ahorrará mucho en costos de desarrollo y no habrá problemas cuando varias personas colaboren. Una vez definida la clase básica a nivel de proyecto, se puede usar cualquier módulo. reutilizado Desventajas de reutilizar mucho el código
:
1. El modelo de operación de la base de datos usa accesorios pesados y criollo, pero en la versión que probé, se movieron al complemento. Se pueden usar o no.
2. La función de caché no se puede controlar. El caché siempre se almacena en caché durante el desarrollo y la depuración. Debe ejecutar Symfony cc y Symfony rc para borrar y reconstruir el caché;
3. La eficiencia no es muy alta, especialmente el proceso de análisis de plantillas y lectura de archivos de configuración, que lleva mucho tiempo;
4. El costo de aprendizaje es muy alto y no existe una comunidad ni documentación madura en China, ni siquiera un manual chino, por lo que se necesita mucho tiempo para dominar todas las funciones y
evaluarlas:
Symfony es definitivamente un marco de nivel empresarial, lo único que aparentemente puede competir con los poderosos marcos en el campo de Java. Las cosas poderosas son naturalmente complicadas de aprender, pero también son útiles para el desarrollo de proyectos. Por supuesto, se recomienda usar Symfony. Para proyectos complejos, creo que vale la pena. El costo de mantenimiento en la etapa posterior es relativamente bajo y la reutilización es muy alta. En consecuencia, si usa Symfony para proyectos de Internet más complejos, debe considerar el problema de la distribución de la base de datos. Luego debe abandonar la capa de operación de la base de datos que viene con Symfony y definirla usted mismo. Por supuesto, Symfony admite arbitrariamente Construya la capa de modelo.
[Comentario general]
Los marcos anteriores tienen sus propias características y todos son proyectos de código abierto. Sin embargo, los proyectos a los que se dirigen los marcos son diferentes. En términos generales, CodeIngiter es más adecuado para proyectos pequeños, CakePHP y Zend Framework son más adecuados. proyectos de tamaño mediano, y Symfony es más adecuado para proyectos grandes y pesados. Al seleccionar proyectos, debe considerar completamente la personalización y escalabilidad del marco, porque cada proyecto no puede determinar si realizará cambios a medida que cambien sus necesidades.
En términos relativos, Zend Framework y Symfony tienen una gran capacidad para hacer frente a los cambios, especialmente las clases en la capa del modelo que se pueden personalizar a voluntad, lo que hace que sea muy conveniente agregar sus propias clases comerciales o de procesamiento de datos. Personalmente recomiendo estos marcos. Uso en proyectos medianos y grandes. CodeIngiter y CakePHP también pueden desempeñar un papel importante en proyectos pequeños y medianos, desarrollo rápido y construcción de prototipos, y son muy adecuados para el desarrollo de proyectos prototipo con objetivos poco claros. La mejor manera de comprender un marco es usarlo y la mejor manera de aprenderlo es mirar videos. :-)
Las personas benévolas tienen opiniones diferentes y las personas sabias tienen opiniones diferentes. Al seleccionar un marco para un proyecto, examine cuidadosamente las necesidades del proyecto y los cambios futuros, y luego elija un marco apropiado para lograr un equilibrio razonable entre la velocidad de desarrollo del proyecto y. mantenibilidad posterior, por supuesto, tal vez sea más adecuado escribir un marco usted mismo. :-)
He hecho una evaluación general de varios marcos. Supongo que muchas cosas no están bien, así que lo dejaré así. ¡Los comentarios y correcciones también son bienvenidos!