Codeigniter es un framework para desarrollo en php. Pero esto ¿qué significa si no sabes mucho de programación?. Yo lo he interpretado de la siguiente manera, es una herramienta pre-producida para programar software. Yo no conocía mucho de php cuando el core Kentana estaba en desarrollo (empezó en .Net). Tenía que aprovechar parte de lo que ya estaba avanzado como el patrón en MVC. Estuve explorando varias opciones pero Codeigniter fue la única que puede usar en mi hosting normal.
¿Realmente tenía algún avance al empezar en php?
Más allá de la idea del core, sentía que tenía que empezar de ceros porque no podía “copiar y pegar”. Entonces decidí varias cosas, lo primero fue replantear el producto mínimo viable. Si bien el avance en .NET tenía algo de ese concepto yo sabía que se podía reducir aún más. Lo siguiente fue empezar a leer la documentación de Codeigniter e intentar realizar un ejemplo sencillo de CRUD. Esto sirve tambien para probar la conexión a la base de datos y representaría una ventaja importante. A partir de esta prueba inicial lo que quedaba era “migrar” el avance de .NET a php. Realmente no es tan sencillo como suena, pero sabía que tenía que enfrentar el reto. WordPress funciona con php por que es Open Source, así mismo se puede instalar fácilmente en cualquier Hosting.
La documentación de Codeigniter me pareció excelente
Desde el modelo CRUD con ejemplos hasta la explicación de sus librerías está muy bien documentado. Tiene distintos usos a nivel de sesiones, seguridad, consultas y operaciones a la base de datos. De igual manera uno puede encontrar preguntas frecuentes de otros desarrolladores en Google. Al final las configuraciones iniciales son de por si algo intuitivas y no se me presentaron mayores dificultades. Documentar es una tarea bastante complicada, sobretodo cuando trabajan muchas personas a la vez. Puede ser un reto poder llenar plantillas o procedimientos. Puede que luego se cree una herramienta para el Core Kentana basada en esa problemática.
index.php
Hay un concepto llamado URL Amigables que en .NET viene implícito, pero en Codeigniter no. Bueno por lo menos no tan así, ya que por ejemplo una ruta puede ser algo como https://sitio.com/controlador/vista. Este concepto es muy importante para mi por que ayuda al usuario final a que se ubique rápidamente en lo que está haciendo. Lo que me encuentro en codeigniter es que las URL son algo como https://sitio.com/controlador/index.php/vista. Sabiendo que la experiencia con .Net era muy agradable tenía que encontrar una forma de corregirlo. La solución está en un archivo llamado .htaccess que en resumidas cuentas lo que me ayuda es a hacer una redirección. Que cuando el sistema llame al archivo index.php de forma intermedia se pueda no mostrar.
Librerías y “helpers”
EL concepto de una librería no es único de este software, pero el de helpers es algo nuevo para mi. Lo que pude encontrar y como se usa en el Core Kentana es con su diferencia especial. Las librerías son aquellas que hacen procesos de Bases de datos y operaciones con ellas. Los helpers en Codeigniter los usamos para temas estrictamente de código o texto. Por ejemplo en la salida html que tienen las vistas. Casi que todas las funciones de los helpers devuelven un texto y las de las librerías retornan otras cosas. La idea es reducir la cantidad de código repetido y llevarlo a la librería para llamarlo una y otra vez. Cabe anotar que las funciones son públicas o privadas, en ese caso las privadas solo son llamadas por esa librería en particular. Las públicas podrían ser llamadas por una herramienta del core desarrollada adicionalmente.
Dependencia y personalización
Depender de un framework no es necesariamente malo si es lo suficientemente estable. Lo que me he encontrado es una comunidad que desarrolla sin problemas. A diferencia de .Net que tiene un software como Visual Studio en Codeigniter lo que te encuentras es una edición de texto “plano”. Para resolver esto mis recomendaciones con las que trabajo son Notepad++ y Sublime Text. Estos son editores de texto con “superpoderes”, me gusta más el segundo en su versión Free. En realidad puedes trabajar con el que te sientas más cómodo no hay una restricción ni nada por el estilo. Para el tema de la personalización veremos que me traje el diseño de .Net en la versión del 2015. Los detalles los haré en otro post ya que se pueden explicar muchas cosas.