¿Qué marco debería usar para garantizar una mejor actualización / mantenimiento a largo plazo, CakePHP o CodeIgniter?

StackOverflow https://stackoverflow.com/questions/255082

Pregunta

Estoy decidiendo sobre un marco para probar para PHP. Lo he reducido a CakePHP y CodeIgniter. Tengo un par de preguntas para cualquiera de ustedes que hayan usado o estén familiarizados con ambos:

  1. Me gusta el hecho de que CakePHP mantiene la mayor parte del código fuera de webroot de forma predeterminada. Especialmente porque puedo terminar usando una instalación de un solo marco para múltiples aplicaciones. Veo que CodeIgniter también lo hará, pero tienes que configurarlo y mover algunas cosas. ¿Es esa solución segura y confiable, o es un truco de último momento?

  2. ¿Cuál (si no ambos) es más fácil de actualizar y mantener a largo plazo? A medida que salen nuevas versiones del framework (y el propio PHP). No quiero que mis cosas se rompan o se vuelvan obsoletas.

Editar:

Este es un post muy antiguo, pero pensé que lo actualizaría con lo que finalmente terminé haciendo, que era usar Kohana.

¿Fue útil?

Solución

Debes probar ambos marcos durante aproximadamente una semana, construir algo trivial (como un blog o wiki) en ambos, y ver cuál prefieres usar. Lo que tenga más sentido para usted para usted probablemente lo sostendrá por más tiempo a través de las actualizaciones y las desaprobaciones.

CakePHP se encuentra en un estado un tanto volátil en este momento, todavía está descubriendo errores mientras presiona para lanzar la versión 1.2 (que no es compatible con versiones anteriores). No sugeriría crear una aplicación crítica con él si necesitas algo sólido como en este momento . Si puede esperar un mes o dos para que las cosas se resuelvan, entonces es probable que sea un punto discutible.

Para abordar sus inquietudes:

1) Cake y CI lo hacen de la misma manera (iirc). Son igualmente seguros, confiables y piratas en este frente.

2) Todo cambia. Si necesita una garantía concreta, perpetua de estabilidad y compatibilidad con versiones anteriores, ruede su propio marco. No hay mucho que hacer, y tienes la garantía de que nada cambia a menos que quieras que lo haga.

Otros consejos

He implementado múltiples aplicaciones en CakePHP y ha sido una experiencia muy, muy agradable. No puedes equivocarte de ninguna manera, ya que ambos son sólidos.

  1. no es un problema.

  2. CodeIgniter tiene un patrocinador detrás, por lo que definitivamente es el que debe elegir a largo plazo. Además, es más rápido.

  1. Esto no es un problema. La aplicación tiene un par de líneas que indican dónde se encuentran el núcleo y el código de la aplicación. Solo necesitas cambiar esas líneas.

  2. Nunca puedes anticipar esto.

El estado de PHP es un comodín aquí. Una aplicación (CI) está diseñada para ser compatible con PHP4 y la otra requiere PHP5. Si necesita lidiar con la posibilidad de que un host web solo sea compatible con versiones anteriores de PHP, debe utilizar CO.

Otro problema es la prueba unitaria. Si necesita que su marco se envíe con pruebas, entonces CI no es el camino a seguir.

Personalmente, me siento cómodo con CI debido al respaldo corporativo. La compañía detrás de CI está obteniendo ganancias reales de sus esfuerzos. Aunque CI es gratis, su producto pagado (ExpressionEngine) eventualmente vivirá en CI. Lo mismo podría decirse de Zend Framework e incluso del nacimiento de Rails (originalmente construido para Basecamp).

Una corrección menor a un comentario anterior: ambos son compatibles con PHP4, no solo CI. Además, no creo que tener un patrocinador genere IC y sea más o menos actualizable o mantenible. El dinero no resuelve esos problemas en lo más mínimo.

Utilizo CakePHP para una variedad de aplicaciones y hasta ahora he estado contento con eso. 1.2 es una gran mejora con respecto a 1.1, y aunque la fuente de la biblioteca puede cambiar de RC3 a Final, no creo que ningún código que escriba se vuelva obsoleto. Mi único problema es que el Manual no es tan completo como debería ser (en mi opinión), y termino en la API bastante. La compensación aquí es que ahora entiendo muy bien el código detrás de escena. En cualquier caso, lo recomiendo encarecidamente.

Por otra parte, nunca he jugado con CI, así que no puedo recomendar CakePHP sobre CI. Tomaría cada uno de ellos para ver cuál te atrapa. Cualquiera que elija, estudie a la perfección sus convenciones y capacidades. Cuando empecé con Cake, sin saberlo, escribí un montón de código para hacer algo que Cake hizo "automágicamente". Al tener que configurar una variable en el controlador.

CodeIgniter es muy flexible, como verías una vez que lo pruebes. Entonces, ¿cómo se mantendría su aplicación caería en sus manos?

También he implementado varias aplicaciones utilizando la misma instalación. Por lo general, creo 2 aplicaciones para proyectos de CMS (una para administración, otra para el front-end).

Para responder a tus dos preguntas desde una perspectiva de CodeIgniter (no uso Cake):

1) CodeIgniter no se mantiene fuera de webroot de forma predeterminada, pero puede hacerlo con algunos cambios muy simples. La primera parte de mi tutorial de CI La serie explica cómo hacerlo, junto con un recorrido por la configuración de una nueva instancia de CI. Una vez finalizada, la única parte de CI que debe estar en webroot es un pequeño archivo bootstrap index.php.

2) Tengo una aplicación que desarrollé originalmente en CI 1.4.x y migré con éxito a 1.5.x luego a 1.6.x. Con cada nueva versión, los desarrolladores de CI ponen a disposición instrucciones de actualización detalladas que establecen qué se debe reemplazar para que las actualizaciones sean bastante fáciles.

Jim.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top