Sigo viendo que CakePHP y CodeIgniter se conocen como frameworks MVC de pila completa, mientras que Zend Framework se dice que no es full stack. ¿Qué significa esto exactamente?Full stack versus framework MVC PHP no completo: ¿cuál es la diferencia?
Respuesta
Zend Framework es un marco de uso a voluntad, que le permite utilizar algunos de sus componentes. Incluso podría usar algunos de estos componentes en una aplicación creada usando framework diferente. De esta forma, un marco de uso a voluntad es más parecido a una biblioteca de clases. *
Un marco de pila completa significa que el uso de cualquier parte de él depende de que usted lo use todo. Por ejemplo, debe utilizar la biblioteca de acceso a datos del marco, la arquitectura MVC, el andamiaje generador de código, etc. y todos estos componentes confían el uno en el otro trabajando juntos para formar el marco completo.
Re su comentario: Sí, el acoplamiento es una forma de verlo. Lo veo como un equilibrio entre suposiciones y flexibilidad. Un marco de full-stack supone que estás usando todo el framework juntos, y desde esa suposición puede hacer que ocurra algo de magia extra.
ZF fue diseñado para minimizar las suposiciones (es decir, minimizar el acoplamiento). Sus componentes hacen pocas suposiciones sobre si está utilizando el resto de los componentes, reduciendo las dependencias pero aumentando la flexibilidad. Pero menos suposiciones significan menos magia.
Ambos estilos de marco tienen ventajas legítimas.
* Una diferencia clave entre una biblioteca de clase simple y un marco es que se pretende que un marco sea extensible. Le recomendamos que mejore la funcionalidad de un marco a través de mecanismos OO como subclases o polimorfismo. Mientras que una biblioteca de clases puede suponer que usará su API tal cual, sin ampliar su funcionalidad.
- 1. Completo Ajax PHP MVC Framework
- 2. ¿Cuál es la diferencia entre Call Stack y Stack Trace?
- 3. ¿Cuál es la diferencia entre prop y full property?
- 4. ¿Cuál es la diferencia en contactos versus contactos sin formato?
- 5. LL (*) versus analizadores PEG: ¿cuál es la diferencia?
- 6. zend-framework versus Kohana versus Symfony
- 7. Cuál es la diferencia entre MVC 2 y MVC3
- 8. ¿Cuál es la diferencia real entre MVC y MVC Modelo2
- 9. ¿Cuál es la diferencia entre ASP.NET y ASP.NET MVC?
- 10. ¿Cuál es la diferencia entre esas expresiones PHP si?
- 11. ¿Cuál es la diferencia entre php cli y php cgi?
- 12. ¿Cuál es la diferencia entre Microsoft.NET \ Framework y Microsoft.NET \ Framework64?
- 13. ¿Cuál es la diferencia entre estas dos declaraciones (Entity Framework)
- 14. ASP.NET MVC versus Zeitgeist
- 15. Escalabilidad de Ruby on Rails versus PHP
- 16. ¿Qué es un framework PHP y cuál es bueno?
- 17. SQL Server 2008 Full Text Search (FTS) versus Lucene.NET
- 18. En PHP, ¿cuál es la diferencia entre 'stripslashes' y 'stripslashes'?
- 19. ¿Cuál es la diferencia entre $ a y $$ a en php?
- 20. ¿Cuál es la diferencia entre session_unset() y session_destroy() en PHP?
- 21. ¿Cuál es la diferencia entre iconv() y mb_convert_encoding() en PHP?
- 22. .Net Framework 4 Full y Net Framework 4 Orientación de perfil de cliente
- 23. ¿Cuál es la diferencia entre require e include con php?
- 24. ¿Cuál es la diferencia entre PHP require e include?
- 25. ¿Cuál es la diferencia entre ++ $ i y $ i ++ en PHP?
- 26. php, ¿cuál es la diferencia entre strtolower y mb_strtolower?
- 27. ¿Cuál es la diferencia entre 'y "en PHP
- 28. En PHP, ¿cuál es la diferencia entre hash y mhash?
- 29. Php: ¿cuál es la diferencia entre $ var y & $ var?
- 30. Imprimir PHP Call Stack
Oh, ya veo. Por lo tanto, parece que la pila completa es análoga a la estrechamente acoplada. Eso suena terrible;) ¡Gracias! –
Cuando dices magia, ¿quieres decir que tienes que codificar menos porque el marco hace suposiciones y maneja más por ti automáticamente? –
Por ejemplo, un controlador MVC puede buscar scripts de vista y clases de modelo en un directorio determinado y utilizar una determinada convención de nomenclatura de archivos. Si los archivos existen y tienen los nombres de clase correctos, se cargan y se usan automáticamente. No se requiere código, siempre y cuando siga la convención del marco. Muchas convenciones son posibles además de las convenciones de nombres de archivos, por ejemplo, las tablas y columnas de la base de datos deben nombrarse de cierta manera. Estas ideas están relacionadas con "convención sobre configuración" o "programación obstinada". –