¿Por qué no se recomienda CodeIgniter?

Le recomiendo encarecidamente que se mantenga alejado de CodeIgniter. Te daré una razón y esta es la única razón que necesitarás: CodeIgniter no tiene idea de cómo hacer la seguridad correctamente . O simplemente no es una prioridad para ellos. Estos son algunos de los dolores de cabeza con los que tengo que lidiar:

  • La mayoría de las funciones de utilidad HTML no escapan a sus argumentos . Por ejemplo, lo siguiente es un posible agujero XSS: Si el usuario puede suministrar ">...<a href=" como la cadena $bar . Es completamente ridículo, en mi opinión, no escapar de una discusión que va a terminar dentro de un atributo, ya que no hay forma de que pueda poner marcas dentro de él de todos modos. Otro buen ejemplo es form_dropdown , que no escapa a las opciones. ¿Por qué demonios usaría sus funciones de utilidad si me obligan a seguir escribiendo html_escape todas partes?
  • La función set_value olvida escapar del parámetro si accidentalmente lo llama dos veces para el mismo parámetro en una página determinada. Además, si está utilizando la clase Validación de formulario y la validación falla, “se olvida de no escapar” del valor del parámetro, lo que significa que pensará que el valor del parámetro era en realidad &lt lugar de < (por ejemplo).
  • Las secuencias porcentuales correspondientes a caracteres invisibles se eliminan durante el procesamiento de entrada. Esto significa, por ejemplo, que si alguien ingresa la cadena foo%10bar como contraseña en un formulario al registrarse, su contraseña se recibirá como foobar . Por supuesto, el usuario no tiene forma de saber que esto ha sucedido … (Archivé un error contra CI por esto, y no parecían entender lo que estaba diciendo o lo obvio que es que esto debe solucionarse).
  • El motor de plantillas (sí, en realidad hay uno) no es compatible con cadenas de escape. (Entonces, ¿por qué demonios se molestaron en escribir uno?)

Codeigniter es fácil de aprender, es uno de los marcos más grandes, tiene una gran documentación y tiene seguridad incorporada, lo que nunca me decepciona (más de 20 proyectos en vivo) y no olvide que un banco necesita más seguridad que una casa normal, si está utilizando datos muy críticos, la seguridad puede ser un gran problema, si solo está haciendo una herramienta de administración simple, será menos importante (pero aún es importante)

Cada marco tiene sus ventajas y desventajas, depende de lo que necesite. Comenzar con Laravel es más difícil que con CI y hasta ahora no he encontrado una clara ventaja que Laravel tenga sobre CI, hablan de código agradable, pero bueno, eso es más una cosa de gusto que de programa.

Cada marco tendrá sus altibajos, y el caso de uso para su aplicación es mucho más importante que las herramientas que utiliza para construirlo.

En cuanto a CI, he estado usando CI durante varios años y todavía lo hago en nuevos proyectos. Si bien es cierto que gran parte de la actividad de los desarrolladores en CI ha disminuido, y varias derivaciones del marco han ganado más tracción, CI como marco sigue siendo robusto y la seguridad es bastante sólida. Uno de los problemas que enfrento es que a medida que una aplicación se vuelve más compleja, se hace más difícil, digamos, introducir interfaces o rasgos, etc. Las soluciones a estas no son obvias, pero puede hacer que funcione de manera confiable.

CI es increíblemente fácil de aprender y puede ponerlo en funcionamiento en cuestión de minutos. La documentación es excelente y la seguridad es buena para lo que sea que esté construyendo. ¿Perderás tu tiempo invirtiendo en CI? No. ¿Deberías pasar a otro marco eventualmente? El tiempo lo dirá, pero es un resultado para el que debe estar preparado dado que descubrir con precisión el estado del desarrollo de CI incluso en 2014 es difícil en el mejor de los casos. Es uno de los marcos más populares y se mantendrá así por un tiempo, así que no renuncies a aprender CI solo por especulación.

CodeIgniter también está activo pero no cuenta con el respaldo oficial de la Compañía que inició el marco. Es por eso que la mayoría de los foros sugieren no usar CodeIgniter. Hasta donde yo sé, CodeIgniter es un marco ligero y muy fácil de aprender. Por supuesto, el framework Laravel comenzó con el código de CodeIgniter y mejoró.

Learning CI no es una mala idea, pero no viene con muchas bibliotecas de manera predeterminada y tendrá que descargar integrarse según sea necesario.

Aprender CI es un poco más fácil que aprender Laravel para quien usa PHP framework por primera vez. Pero una vez que haya comenzado con el marco, no se sentirá muy diferente.

Si su intención final es usar, no recomendaré aprender CI y traducir, pero comience directamente con Laravel.

Supongamos que si está comenzando con CodeIgniter, también puede probar algunos de los Generadores de Código disponibles para acelerar su desarrollo, como PHP Code Generator de PHP Code Generator para generar un sitio web completo y personalizar o FormIgniter para generar solo el MVC.

La única razón por la que no sigue los estándares modernos de la comunidad PHP. Carece de muchas características nuevas de PHP moderno. Nunca puedo pensar de esta manera usar el cargador automático de compositor, sin soporte de rasgos, Middleware, etc.

Por lo tanto, sugiero no usarlo para nuevas aplicaciones.