Introducción a CodeIgniter

CodeIgniter es un framework que nos va permitir simplificar el desarrollo de una aplicación web mediante la automatización de algunos de los patrones más utilizados para resolver tareas comunes. ¿Y que es un framework? Un framework (entorno de trabajo) es un conjunto de herramientas, clases y librerías encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Conforme vamos realizando proyectos, descubrimos que muchos de ellos comparten elementos comunes:

  • Conexión con la base de datos
  • Validación y verificación de los derechos del usuario
  • Operaciones CRUD
  • Soporte de los errores
  • Envío de emails
  • Registro de eventos (log)
  • etc....

Por lo que tarde o temprano para un nuevo proyecto, cogeremos partes de otros proyectos ya realizadas-probados y conjuntaremos una aplicación vacía preparada para introducir nuestro código. De esta forma se construyen los esqueletos de programas los cuales llamamos frameworks (marcos de trabajo).

Desde que en la versión 5 de PHP se potenció la programación orientada a objetos, se han ido publicando conjuntos de librerías (jerarquía de clases) que realizan tareas comunes y que podemos usar en nuestros proyectos, por ejemplo, PHPMailer. Gracias a que son clases, nosotros podemos heredar todas esas funcionalidades creando nuestras propias subclases e introduciendo nuestro código específico para un proyecto en particular. De esta forma, estamos automatizando tareas comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación.

La idea de crear frameworks de aplicaciones es el resultado de la ampliación de la experiencia del programador después de haber realizado varios proyectos, ya que:

  • El código propio de una aplicación constituye solamente una parte de todo el programa.
  • El resto se repite y puede emplearse varias veces en otras aplicaciones.

Escribiendo aplicaciones parecidas establecemos métodos de trabajo específicos:

  • Disponemos de un conjunto de librerías ya probadas
  • Repartimos los scripts en subdirectorios
  • Establecemos un formato de escritura de los datos de configuración

Si un framework proporciona una estructura al código fuente, forzamos al desarrollador a crear un código más legible y más fácil de mantener. Por lo que, al crear un proyecto nuevo basado en un framework, tendremos que rellenar el código específico para una actividad concreta.

Ojo, los frameworks no son simples librerías sino conjuntos de fragmentos de código seleccionados que interaccionan entre sí. Podríamos decir que corresponde con la base de una aplicación y contienen subsistemas que constituyen parte de varios programas (conexión con la base de datos, verificación de los derechos del usuario, registro de eventos, soporte de los errores, pruebas, etc.)

Principalmente las ventajas que conlleva el uso de un framework son:

  • Evitar trabajo repetitivo y pesado en cada proyecto.
  • Minimizar el riesgo de aparición de errores que es efecto de limitar el número de las actividades reiterativas y de evitar la multiplicación del código.
  • Aprovechar el trabajo, conocimientos y experiencia acumulada durante los años por sus creadores. Podemos esperar que gracias a la práctica de muchos años las soluciones empleadas serán las mejores posibles.
  • Ordenar y sistematizar el proyecto creando una estructura de directorios específica, uso de ficheros de configuración, etc.
  • Sistematizar la terminología utilizada por los programadores que trabajan en un proyecto determinado y las facilidades de comunicación vinculadas con esto.
  • Identificar defectos del framework y añadir nuevas funcionalidades.

Según usemos un framework propio o uno realizado por un tercero, tendremos unos inconvenientes o otros.

Si usamos un framework de terceros:

  • Coste de aprendizaje:
  • Tiempo para descubrir funcionalidades y funcionamiento.
  • Configuración de la aplicación, el proceso del control (por ejemplo, desde la validación del formulario hasta su escritura en la BD) o la cuestión de los derechos.
  • Complejidad del código:
  • Cada uno de nosotros tiene sus costumbres y el concepto de un framework ya creado puede ser completamente incompatible con nuestra práctica actual.
  • No se ajusta a nuestras necesidades:
  • El uso de una solución concreta debe proporcionar soluciones para los requerimientos de cualquier proyecto nuevo.
  • No es necesario:
  • Usar un framework allí donde solamente es "el arte por el arte". En este caso el framework nos proporcionará más problemas que ventajas.

Si usamos un **Framework propio** tendremos los siguientes inconvenientes:

  • Tiempo de desarrollo:
  • ¿cuantos proyectos tenemos que crear para que nuestro framework sea estable y funcione correctamente?
  • Errores
  • ¿Quién prueba el framework? ¿Los clientes?
  • Escalable:
  • caché, persistencia,...
  • Documentación:
  • Para los nuevos programadores
  • Extensible:
  • Tolerante a cambios, nuevos módulos, plugins, ¿AJAX?, ...

A continuación vamos a realizar un pequeño estudio sobre los frameworks PHP realizados por terceros. Es lo que se suele llamar "Estado del arte".

results matching ""

    No results matching ""