Archivo de la categoría: CodeIgniter

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

Comunidad CodeIgniter en español

Ya está en marcha el blog de la comunidad CodeIgniter en español. Un lugar donde se recogen las experiencias y colaboración de todos los desarrolladores que usan CodeIgniter en sus proyectos.

La dirección es: http://comunidadcodeigniter.wordpress.com

¡Todo el que lo desee puede participar con sus comentarios!

Aplicaciones basadas en CodeIgniter

A continuación presentamos una lista de aplicaciones desarrolladas con CodeIgniter. Está en permanente actualización, así que sentíos libres de hacer vuestras contribuciones y sugerencias.

Bamboo Invoice

Sistema de facturación on-line, libre y multiidioma.

http://bambooinvoice.org/

68kb

Sistema para crear “bases de conocimiento”, dedicados a reunir documentación sobre un tema específico. Es ideal para colectivos de profesionales que necesitan estar al día con las novedades en su profesión.

http://68kb.com/

Open Blog

Sencillo y completo blog hecho íntegramente con CodeIgniter. Tiene soporte multiidioma, varias plantillas predefinidas (con la posibilidad de crear nuevas) y todo lo que se puede esperar de un blog decente.

http://www.open-blog.info

CodeIgniter: simplificando la programación en PHP

A la hora de desarrollar proyectos web de complejidad media nos enfrentamos a diversos problemas que pueden hacer que un proyecto que parecía interesante pase a ser un infierno de código.

Frecuentemente los escasos plazos, presupuestos ajustados y presiones por parte de los superiores (a menudo muy desconectados de la programación) hacen que los proyectos no tengan la calidad que deberían, y terminan siendo más un problema que un trabajo decente.

¿Cómo evitar los problemas de trabajar en un proyecto web de programación?

Algunos de los consejos son más que obvios: mantén una programación clara, investiga antes de comenzar, plantea una buena estructura de datos…

Sin embargo, aun cuando se es un programador pulcro y ordenado, finalmente deberás enfrentarte a la realidad: cuantas más líneas escribas, más errores cometerás.

¿Se pueden realizar trabajos de más calidad, programando menos? La respuesta es: Sí, utilizando un marco de trabajo adecuado (framework). Estos marcos son bibliotecas de código bien probadas, generalmente utilizando el Modelo Vista Controlador (puedes leer más acerca del Modelo Vista Controlador en Wikipedia o en este post de nuestro blog sobre MVC). Se utilizan para hacer de forma más rápida las tareas más repetitivas: creación de formularios, conexión a base de datos, paginación, etc.

Al estar ya todo hecho, simplemente hay que usarlo, se evitan los errores típicos de la programación tradicional que nos han sacado los colores en más de una ocasión (cualquiera que haya presentado un proyecto ante uno o varios clientes sabrá a lo que me refiero: un enlace erróneo, un error no manejado…)

Para quienes trabajan con PHP, encontrarán que hay una gran cantidad de estos frameworks que pretenden hacer la vida más fácil a los programadores. Pero ¡cuidado!, algunos harán que el proyecto se complique más. No tiene mucho sentido utilizar un framework para una web de cuatro páginas, a menos que sea como experimento…

Veamos a continuación un marco de trabajo en PHP que cumple unos requisitos muy definidos:

  • Mantiene un equilibrio correcto entre lo que ya está hecho y lo que debes programar. Un framework con muchas funciones es más fácil de usar, pero más lento y pesado.
  • Debe estar bien documentado. Te vendrá muy bien cuando estés empezando.
  • Debe ser ligero, configurable y sencillo.
Logo CodeIgniter

Logo de CodeIgniter

Un marco de trabajo que me ha sorprendido es CodeIgniter. Rápido, funcional y bien documentado. Creo que es ideal para comenzar a trabajar en proyectos de cierta complejidad.

Obviamente no es el único: ZendFramework, CakePHP, Kohana hacen seria competencia a CodeIgniter.

¿Por qué, entonces, nos decantamos por CodeIgniter?

Principalmente porque es el más rápido y el que más documentación tiene. Además te permite mantener una forma de programación más “clásica”, al no tener tantos módulos o librerías como otros que, en muchos casos no se utilizan.

De forma que podemos asegurar que CodeIgniter es muy adecuado para empezar a trabajar en un Modelo Vista Controlador. Tus proyectos de programación web ganarán en calidad, y serán más rentables.