¿Cuáles son los marcos comunes para el desarrollo de PHP?
Introducción a frameworks comunes para el desarrollo de PHP:
(Recomendación de videotutorial: videotutorial de PHP)
1. ThinkPHP
ThinkPHP ( FCS) Es un marco liviano de tamaño mediano, que es un marco de desarrollo PHP chino trasplantado de la estructura Struts de Java. Utiliza una estructura de desarrollo orientada a objetos y un modo MVC, y simula la implementación de la biblioteca de etiquetas Struts. Es más fácil de usar en todos los aspectos. Es relativamente fácil de comenzar para los desarrolladores familiarizados con J2EE y es adecuado para principiantes. Marco PHP. El propósito de ThinkPHP es simplificar el desarrollo, mejorar la eficiencia y ser fácil de expandir. Su soporte de bases de datos ya incluye soporte para MySQL, MSSQL, Sqlite, PgSQL, Oracle y PDO. ThinkPHP tiene abundante documentación y ejemplos, y el marco tiene una gran compatibilidad, pero sus funciones son limitadas, por lo que es más adecuado para el desarrollo de proyectos pequeños y medianos.
Ventajas:
1. Con la ayuda de ideas maduras de Java
2. Documentación en chino rica y fácil de usar, bajo costo de aprendizaje y alta actividad comunitaria. /p>
3. El marco tiene una gran compatibilidad, PHP4 y PHP5 son totalmente compatibles y son totalmente compatibles con UTF8, etc.
4. Adecuado para el desarrollo de proyectos pequeños y medianos
5. Introducción de la herramienta de gestión de paquetes Composer de thinkphp3.2.2
Desventajas
1. El soporte para Ajax no es muy bueno;
2 La estructura del directorio es confusa, peor que la de otros frameworks;
3. Fácil de empezar, pero difícil de aprender en profundidad.
2. Yii
Yii es un framework PHP basado en componentes de alto rendimiento para desarrollar aplicaciones web a gran escala. Yii está escrito en estricta programación orientada a objetos y tiene referencias de biblioteca completas y tutoriales completos. Desde MVC, DAO/ActiveRecord, widgets, almacenamiento en caché, RBAC jerárquico, servicios web, hasta temas, I18N y L10N, Yii proporciona casi todo lo necesario para el desarrollo de aplicaciones Web 2.0 de hoy. De hecho, Yii es uno de los frameworks PHP más eficientes.
Ventajas
1. POO puro
2. Se utiliza para aplicaciones web a gran escala
3.
4. La velocidad de desarrollo es rápida y la velocidad de ejecución también es rápida. Excelente rendimiento y funciones ricas
5. Utilice herramientas de línea de comandos.
6. Admite la herramienta de gestión de paquetes del compositor
Desventajas:
1. Menos orientación y consideración para la capa Modelo.
2. hay algunos ejemplos en el documento
3. Demasiado inglés
4. ¡Requiere dominio de la tecnología PHP y dominio de la programación orientada a objetos!
5. La vista no es una vista ideal. La vista ideal puede ser solo código html y no implicará código PHP.
3. Laravel
Ventajas
1. La idea de diseño de Laravel es muy avanzada y es muy adecuada para aplicar varios modelos de desarrollo TDD, DDD y BDD.
p>
2. Admite la herramienta de administración de paquetes Composer
3. Integra características relativamente nuevas de PHP, así como varios patrones de diseño, contenedores Ioc, inyección de dependencia, etc.
Desventajas
1. Basado en un marco basado en componentes, por lo que está relativamente inflado
4 CodeIgniter
Ventajas:
1.Code Igniter defiende el principio de "la simplicidad es bella". No hay patrones de diseño sofisticados ni estructuras de objetos extravagantes, todo es muy simple. Solo se necesitan unas pocas líneas de código para comenzar a ejecutarse y algunas líneas más de código para generar. Se puede decir que es un modelo de "gran sencillez".
2. La configuración es simple, todas las configuraciones se configuran mediante scripts PHP y la eficiencia de ejecución es alta.
3 Tiene funciones de enrutamiento básicas y puede realizar enrutamiento a un determinado; extensión;
4. Tiene función de diseño preliminar y puede crear un cierto nivel de apariencia de interfaz;
5. La capa de base de datos está bien encapsulada y tiene funciones MVC básicas.
6. Rápido y conciso, poco código, alto rendimiento de ejecución,
7. El marco es simple, fácil de usar, de bajo costo de aprendizaje y la documentación es detallada;
8. Viene con muchas bibliotecas de herramientas simples y fáciles de usar, el marco es adecuado para aplicaciones pequeñas.
Desventajas:
1. .
2. La estructura interna es demasiado confusa. Aunque es simple y fácil de usar, carece de capacidades de expansión.
3. Simplemente comprenda la capa de modelo como operaciones de base de datos.
4. 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 las aplicaciones pequeñas. necesidades de aplicaciones de tamaño mediano.
p>
Evaluación:
En general, vale la pena utilizar 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 la plantilla, y la capa de operación de datos está encapsulada. No está mal, y CodeIgniter no utiliza muchos patrones de diseño demasiado complejos, y el rendimiento de ejecución y la legibilidad del código son buenos. En cuanto a la biblioteca adicional, también es bastante buena, sencilla y eficiente.
5. Zend Framework
Ventajas:
1. Amplia aplicación de nuevas funciones orientadas a objetos en PHP5: interfaces, excepciones, clases abstractas, SPL, etc. . La aplicación de estas cosas hace que Zend Framework sea altamente modular y flexible
2. Sigue estrictamente los principios de "programación para interfaces" y "responsabilidad de un solo objeto"
3. 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 moderada
Diseño 4.MVC, relativamente simple
5 Tiene una función de enrutamiento y un archivo de configuración relativamente potente (puede manejar XML y php INI)
6. Puede admitir intuitivamente la capa de modelo además de las operaciones de base de datos (más potente que CodeIgniter y CakePHP). Puede usar fácilmente la función Cargador para cargar otras clases recién agregadas.
7. La función Caché es muy poderosa y admite tanto el caché de front-end como el de back-end. El caché de back-end admite Memcache, APC,. SQLite, archivos, etc.
8. La función de operación de la base de datos es muy poderosa y admite varios controladores (adaptadores)
9. La documentación está completa y la comunidad nacional es muy madura. /p>
Desventajas:
1. La función MVC es relativamente débil, la capa de Vista se implementa simplemente (al igual que no se implementa) y no puede controlar poderosamente la página de inicio.
2. No existe un script automatizado, cree una aplicación, incluido el archivo de entrada, todo debe crearse manualmente y el costo de entrada es alto.
3. Por el contrario, debido a que se utiliza una gran cantidad de diseño orientado a objetos en el marco, se imponen requisitos más altos a los desarrolladores. Aumenta indirectamente el costo de desarrollo del proyecto
Evaluación:
Como marco oficial, la ambición de Zend Framework es previsible: quiere desplazar a otros marcos y encapsular muchas bibliotecas de clases poderosas que pueden proporcionar servicios de marco integrales, y su equipo de desarrollo es muy sólido y totalmente capaz de desarrollar productos muy poderosos. Por lo tanto, es básicamente seguro que Zend Framework tiene un futuro brillante si se dedica más tiempo a mejorarlo.
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.
6. CakePHP
Ventajas:
1. El marco más similar a RoR, incluido el método de diseño y el método Active Record de operación de la base de datos.
2. El nivel de diseño es muy elegante, no hay biblioteca adicional, todas las funciones son marcos puros y la eficiencia de ejecución es bastante buena.
3 Las funciones hasOne y hasMany. la capa de base de datos es muy potente. Adecuado para procesamiento empresarial complejo.
4. Función de enrutamiento, la dificultad de configuración es moderada.
5. El andamio automático (andamio) es muy potente y adecuado para medios. aplicaciones de tamaño grande
6. Básicamente implementó todas las capas de MVC
7 Tiene la función de operar automáticamente scripts de línea de comandos
8. y el costo de aprendizaje es moderado
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 de otra manera. la base de datos
2. La función de caché es ligeramente débil
p>3. La función de configuración es un poco débil
4. aplicaciones, solo apto para aplicaciones de tamaño mediano. El costo de aprendizaje es ligeramente mayor para aplicaciones de pequeña escala.
Evaluación:
En general, el marco CakePHP representa una era muy importante y. representativo del marco PHP, actualmente juega un papel muy importante. Muchos marcos escritos por usted mismo imitan el método CakePHP, lo cual es un hito que revela el método de desarrollo ágil de RoR y la idea de diseño de considerar las operaciones de la base de datos; el único modelo. Es una excelente herramienta para desarrollar aplicaciones y prototipos rápidos; de manera similar, se utiliza como marco de desarrollo para sitios web Web2.0. Vale la pena elegir Symfony. Ventajas:
1. Implementa completamente las tres capas de MVC
2. Encapsula todo, incluidos $POST, $GET datos, manejo de excepciones, función de depuración y detección de datos.
3. Contiene una poderosa función de almacenamiento en caché
4. Carga automáticamente la clase y puede definir varias funciones a voluntad. Plante su propia clase.
5. Potente soporte de lenguaje.
6. Tiene operaciones de capa de vista muy poderosas y puede contener múltiples archivos de manera gradual
7. Función de configuración muy poderosa, que utiliza la configuración xml para controlar todos los marcos y comportamientos de ejecución del programa
8. Contiene una potente gestión de aplicaciones y proyectos de varios niveles: Proyecto --> Aplicación --> Módulo --> Acción, puede satisfacer las necesidades de múltiples aplicaciones en un proyecto, y cada capa puede definir su propia biblioteca de clases y configuración. archivo, diseño
9. Funciones de operación de línea de comandos muy potentes, que incluyen creación de proyectos, creación de aplicaciones, creación de módulos, actualización de caché, etc.
10.Symfony es definitivamente la primera opción para desarrollar proyectos grandes y complejos, porque usar Symfony ahorrará en gran medida los costos de desarrollo, y cuando varias personas colaboren, no habrá problemas. Una vez definida la clase básica a nivel de proyecto, cualquier módulo se puede reutilizar, lo que reutiliza en gran medida el código. p>
Desventajas:
1. El mayor problema es también el uso de demasiadas fuentes de código abierto con diferentes estilos. Los proyectos se combinan en un marco.
2. y Propel son bastante complejos, la estructura de Symfony es muy compleja y difícil de entender y aprender
3 La función de almacenamiento en caché no se puede controlar, cada vez que el desarrollo y la depuración siempre almacenan en caché, es necesario ejecutar Symfony cc. , Symfony rc para borrar y reconstruir el caché
4. 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
p. >
5. El costo del aprendizaje es muy alto y no hay comunidades maduras ni documentos chinos en China
Evaluación:
> Symfony es definitivamente un marco de nivel empresarial, lo único que aparentemente puede competir con los marcos poderosos en el campo de Java. Las cosas poderosas son naturalmente complicadas de aprender, pero también son útiles para el desarrollo de proyectos. Symfony para proyectos complejos creo que vale la pena ocuparse de él. El costo de mantenimiento en el período 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 la construcción arbitraria de la capa modelo. /p>
Comentarios generales:
Los marcos anteriores tienen sus propias características y todos son proyectos de código abierto, pero los proyectos a los que se dirigen los marcos son diferentes en términos generales:
<. p>1. Proyectos pequeños: CodeIngiter2 Proyectos medianos: CakePHP, Zend Framework, Laravel, Thinkphp
3. Proyectos grandes y pesados: Yii, Symfony, Laravel.