¿Codeigniter es adecuado para grandes aplicaciones web?

Sí lo es. CodeIgniter es un potente marco PHP con una huella muy pequeña , creado para desarrolladores que necesitan un kit de herramientas simple y elegante para crear aplicaciones web con todas las funciones. CodeIgniter fue creado originalmente por EllisLab en 2006 y ahora es un proyecto del Instituto de Tecnología de Columbia Británica. CodeIgniter se basa en el popular patrón de arquitectura de software Modelo-Vista-Controlador (MVC). MVC es un enfoque de desarrollo que separa la lógica empresarial de la capa de presentación. Al separar las dos capas, le permite crear páginas web que contienen secuencias de comandos mínimas, ya que la presentación es independiente de la lógica de la aplicación PHP. Codeigniter también se puede modificar para usar el patrón de desarrollo del Controlador de vista de modelo jerárquico (HMVC) que permite a los desarrolladores de Codeigniter agrupar secciones similares de un sitio en móbulos en un formato de subdirectorio. Marcos PHP. Mientras discutía los marcos PHP en la convención frOSCon en agosto de 2008, el creador de PHP, Rasmus Lerdorf, señaló que le gustaba CodeIgniter “porque es más rápido, más liviano y menos como un marco”. .

Sí, debido a sus códigos de huella muy baja. Es muy rápido en comparación con otros marcos como Zend o Symphony, etc.
Hace aproximadamente 1 año y medio que estamos trabajando en proyectos a gran escala basados ​​en CI, por lo que es genial escribir menos código y hacer el trabajo (completar el proyecto).

En resumen, si. Su huella es pequeña y se ha desarrollado para una ejecución rápida.

CI tiene su propia forma de hacer las cosas que debe tener en cuenta cuando comience a usarla:

  • De forma nativa, CI no le permite llamar a los controladores desde otros controladores; esto apesta, pero el complemento HMVC de wiredesignz supera ese problema y también le proporciona el marco para crear módulos en la base de código para que pueda separe temáticamente componentes arquitectónicos en su sistema. El HMVC de Wiredesignz es realmente bueno.
  • Usted carga modelos en su controlador usando $ this-> load-> model (‘my_model’) y esto crea un objeto público $ this-> my_model adjunto al controlador, que explota. Pero el uso de $ this-> load-> model (‘my_model’, ‘oMyModel’) adjunta el objeto público $ this-> oMyModel al controlador. Una ligera mejora, pero con la que realmente puedes vivir.
  • No hay un MVC automático pegado intuitivo. Si desea uno, codifíquelo o busque un complemento que lo proporcione. Esto apesta, pero solo un poco, ya que la sobrecarga para hacer que un MVC funcione sin señalar explícitamente las vistas en los controladores puede ser costoso.
  • CI tiene una mala reputación entre los desarrolladores más altruistas que siguen a sus mesías Martin Fowler y Tío Bob y sus Sagradas Escrituras de Patrones y Diseños. Dichos desarrolladores eligen marcos “reales” como Zend, Cake, Laravel, y luego pasan el mismo tiempo desarrollando con ellos. Y los verdaderos niks puros desarrollan patrones de objetos imposiblemente intrincados con ellos como homenaje a los avatares antes mencionados, a pesar de que estos marcos emplean algunos, si no una buena parte, de sus patrones arquitectónicos.

Algunas cosas buenas sobre CI:

  • Puedes escribir aplicaciones rápidamente
  • Es facil de aprender
  • Es extensible con algunos complementos realmente útiles y potentes.
  • Tiene una gran base de usuarios.
  • Tiene algunos ayudantes y herramientas muy potentes listos para usar
  • Tiene una buena manera de pegar las URL y la ruta del método del controlador juntas y la inyección de parámetros
  • Una buena convención de db-migrations
  • No te obliga a familiarizarte con una cantidad excesiva de clases y objetos básicos
  • La complejidad del código y el contenido básico de PHP depende de usted: es flexible
  • PUEDE introducir PHPUnit usando un ajuste no crítico menor

Las buenas convenciones de desarrollo le permiten evitar códigos desordenados y una arquitectura indescifrable.

Algunas cosas sobre mi:

  • Me gusta CI: estoy trabajando en un proyecto de nivel empresarial utilizándolo
  • He trabajado en varios proyectos usando Zend Frameworks; me gusta el cambio de contexto que proporciona
  • He desarrollado usando CakePHP y Kohana y muchos frameworks a medida también
  • Creo que MySQL vuela a lo grande porque tiene un lenguaje de procedimiento almacenado del lado del servidor deficiente. Postgre … ahora, ¡ese es un sistema de base de datos adecuado! (O Oracle si puedes pagarlo)
  • He investigado seriamente a Laravel y me gusta y puedo cambiar a él en el futuro, sin embargo, actualmente es un desastre de actualizaciones en capas sin una política coherente que me da la impresión de que en algún momento algunas versiones pueden no ser compatibles con versiones anteriores características y la documentación está desactualizada. Para los desarrolladores de sistemas expertos, cosas como documentación, transferencia de conocimiento, convenciones, registro interno, arquitectura intuitiva, pruebas unitarias, organización de proyectos y estándares son mucho más importantes que los patrones de diseño inteligentes.