Usando CodeIgniter en un proyecto real

Recientemente en la empresa para la que trabajo (Sistemas Globales Multimeda, también conocida como SGM Sistemas) se nos planteó un presupuesto, cuanto menos, atractivo e interesante. Tras muchas deliberaciones en torno a qué lenguaje utilizar (ASP o PHP), finalmente nos inclinamos por éste último por varias razones:

  • Mayor cantidad de herramientas disponibles (Eclipse frente a Dreamweaver; MySQL frente a SQL Server; MySQL Workbench para el diseño de la base de datos, PHPMyAdmin y un servidor con Plesk).
  • Más componentes disponibles y a un precio más asequibles (cuando no gratuitos).
  • Mejor separación entre el código y el diseño.

Nuestro equipo de trabajo había tenido de forma reciente buenas experiencias con PHP, logrando reducir los tiempos de desarrollo y aumentando sensiblemente la calidad y reusabilidad de las aplicaciones realizadas.

El proyecto constaba de las siguientes áreas:

  • Extranet con posibilidad de intercambio de documentos.
  • Notificación de disponibilidad de documentos, y de lectura de los mismos vía e-mail.
  • Gestor de contenidos basado en plantillas predefinidas.
  • Gestión de descargas, noticias y galerías.

No es uno de los mayores proyectos a los que nos hemos enfrentado; no obstante, dada la importancia del cliente (una institución pública) el resultado debía ser óptimo, bien probado y en un marco de seguridad importante.

Tras barajar las posibilidades disponibles (utilizar un framework o programar con PHP puro), nos decantamos por el uso de CodeIgniter, por las siguientes razones:

Razones para el uso de un marco de trabajo (framework) frente a desarrollar la aplicación desde cero con PHP:

  1. La seguridad debía ser un factor clave: datos introducidos por el usuario debidamente validados y filtrados para evitar ataques XSS.
  2. Comunicación con Base de Datos (MySQL) automatizada, validando todas las consultas y filtrando los datos variables para evitar inyección SQL.
  3. Disponer de componentes plenamente probados, con el objetivo de mejorar la productividad.

Razones para el uso de CodeIgniter frente a otros marcos de trabajo:

  1. Amplia documentación disponible.
  2. Ligero, y sin instalación (para comenzar a desarrollar una aplicación basta con copiar los archivos, y ponerse a trabajar).
  3. Compatibilidad con una amplia variedad de servidores y configuraciones (la aplicación se concebiría para ejecutarse en un hosting compartido con otros clientes, y con relativamente poca posibilidad de configuración).
  4. Flexibilidad, ya que no obliga a tener una determinada estructura de tablas, nombres de campos, ni adherirse a una forma de programar concreta.

Entre las desventajas y dificultades con las que nos encontramos durante el desarrollo del proyecto están:

  • Curva de aprendizaje: necesidad de aprender nuevas funciones, estructuras y métodos de programación.
  • Dificultad para adaptar el código escrito en PHP tradicional (nuestra empresa contaba con una administración escrita en PHP puro, con listados, formularios, subida de archivos, etc.). No disponíamos de tiempo para comenzar de cero, por lo que se optó por adaptar el existente a la nueva filosofía. Esto no debería representar mucha dificultad para un programador avanzado, con experiencia en desarrollo de proyectos de complejidad media.

A medida que avanza el desarrollo de la aplicación (aún está en fase de desarrollo) hemos solventado todas estas dificultades, resultando un proyecto muy interesante, de gran calidad y fácilmente reutilizable. La adaptación de los componentes ya desarrollados no conllevó serios problemas (eso sí, manual de CodeIgniter en mano) y el resultado está siendo más que satisfactorio.

No obstante, al ser este el primer proyecto serio en el que empleamos CodeIgniter no podemos hacer una valoración de la facilidad o dificultad de las futuras modificaciones. No obstante, por la forma de estructurar la aplicación y los archivos suponemos no entrañará mayor dificultad.

Proyecto con CodeIgniter

Proyecto con CodeIgniter

Acerca de Iván Argulo

Programador, Analista de Sistemas y Webmaster Perfil en Google+

Publicado el febrero 13, 2009 en CodeIgniter, Programación. Añade a favoritos el enlace permanente. 6 comentarios.

  1. Enhorabuena por el blog.
    Yo también uso CodeIgniter, pero no a nivel experto aún, estoy empezando con él.

    Estoy haciendo el desarrollo de mi web para un proyecto y me entran las dudas sobre las inyecciones SQL. En PHP puro hay muchos sitios, incluso funciones hechas para hacer el típico copy&paste, pero no veo nada en CodeIgniter y por la documentación no ha visto nada.

    Así que te propongo que si conoces el tema, hagas un mini tutorial sobre las inyecciones SQL y si no tienes tiempo por lo menos si puedes índicame algunas nociones básicas o algo para empezar, si puedes comunícame por correo si haces algo o la información que conozcas. Un saludo y sigue así

  2. Si deseas que el filtro SQL injection se ejecute automáticamente cada vez que encuentra POST o COOKIE puedes habilitarlo en:

    application/config/config.php:

    $config[‘global_xss_filtering’] = TRUE;

  3. hola que buena ilustracion , me gustaria o amuchos que dejaras unas cuantas pautas o manual de referencia de como estructuraste tu aplicacion y los primeros pasos que debebes de tener encuanta para empezar un projecto serio en este framework…

  4. No consigo pillarle el truco a codeigniter y me estoy poniendo de los nervios ahora con las consultas a bbdd😦
    En fin… ya lo sacaré pero es muy buen framework eso si.

  5. Buenos Dias.

    Tengo Servidor Linux – Centos y he levantado el codeigniter quisiera saber , como puedo conectarme a una bd con sql server 2008, ya que tengo esa bd y necesito sacar reportes con php

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: