Para las alternativas que he utilizado CakePHP. En los últimos 10 meses, he desarrollado algunas aplicaciones complejas de nivel de blog con aplicaciones para uso interno. Fue fantástico para eso. Es fácil de acceder, no necesita un php muy reciente, los documentos son decentes y al no encontrar una respuesta, generalmente se encuentra en la lista de correo.
El principal problema que tuve con la torta era que yo no sentía que tenía tanto control sobre su ORM, y aunque han mejorado en esa zona recientemente con la adición de soporte para agrupar cláusulas Todavía no puedo especificar se une explícitamente. Esto lleva a situaciones en las que puede tener un bajo rendimiento porque el orm decide que necesita hacer un montón de consultas para obtener datos de los modelos relacionados. O puede usar hacks como este http://teknoid.wordpress.com/2008/07/17/forcing-an-sql-join-in-cakephp/ que funciona pero es un poco feo. A medida que las aplicaciones comenzaron a crecer y más y más modelos se agregaron al esquema, comencé a encontrarme con la situación cada vez más a menudo, así que decidí cambiar a algo que soportara un ORM con más funciones (tuve otros productos con pastel, pero la mayoría eran bastante menores). Me molestó por un tiempo, pero me conformé con la idea de que el pastel es una excelente herramienta, simplemente no es la herramienta adecuada para mí.
Miré principalmente a Zend y Symfony (solo rocé los documentos de CodeIgniter y vi el screencast). Terminé recogiendo Symfony porque parecía tener el equilibrio adecuado de potencia y facilidad de uso. Puede usar Doctrine y Propel, hay muchos complementos y muchos documentos. Me abroché el cinturón de seguridad listo para lidiar con los millones de archivos yml que pensé que tendría que editar, pero para mi sorpresa no tuve que configurar demasiado. Zend parece bastante poderoso, pero parece demasiado de Do It Yourself para mis proyectos actuales. Por lo que leí, también puedo usar Zend libs dentro de mis proyectos Symfony sin demasiados problemas, así que sellé el trato.
Por lo tanto, en resumen, lo que elija dependerá de sus necesidades. Si te ves realizando consultas complejas, probablemente deberías elegir una que tenga una muy buena biblioteca de base de datos o al menos te permita usar fácilmente una alternativa sin renunciar a las sutilezas del marco (entiendo que CodeIgniter puede usar doctrina, por ejemplo).
He intentado la sinfonía y tienes razón sobre el enfoque del tutorial. El problema es que acaban de lanzar el tutorial para el lanzamiento actual, así que he tratado de aprender de la documentación anterior y muchas cosas han cambiado, por lo que mi experiencia fue un infierno. Espero que arreglen sus cosas. –
Symfony es un marco de nivel empresarial. Si quieres algo básico, usa CodeIgniter. Si desea iniciar una empresa y ganarse la vida con su aplicación web, use Symfony. –
He usado Symfony para varias aplicaciones complejas y estoy de acuerdo con el comentario de Jon. Sin embargo, una vez que hayas superado la pronunciada curva de aprendizaje de Symfony, es igual de fácil (o más fácil, yo diría) usar CodeIgniter para proyectos pequeños. –