Es innegable que, en estos últimos años, los móviles inteligentes han revolucionado nuestras vidas. Este hecho va parejo a las aplicaciones y servicios web, que han experimentado un impulso espectacular. Y por supuesto, igualmente, todo esto viene de la mano de la cantidad de herramientas que han surgido para facilitar el desarrollo de estas aplicaciones web, aunque aquí, al igual que sucede con el huevo y la gallina, no está muy claro quién precede a quién.
Hoy en día es impensable no desarrollar una herramienta que, al menos, tenga una versión para dispositivos móviles. Aunque existe una opción que puede resolver, de un solo golpe, la necesidad de disponer de una herramienta para escritorio y otra para dispositivo móvil: las aplicaciones web.
Por todo ello, en este y en los próximos artículos escribiré sobre un framework para el desarrollo de aplicaciones web, empezando por lo más básico e intentando profundizar lo más posible. Dado que existe una gran variedad de herramientas para la creación de aplicaciones web, basadas todas en diferentes tecnologías y modelos, me he decidido por uno que, si bien no es de los más utilizados, es probablemente uno de los más sencillos de aprender. Me refiero a CodeIginiter.
Con el objetivo de asentar los conocimientos que vamos a adquirir sobre CodeIgniter vamos a desarrollar una aplicación web que subiremos a un repositorio de GitLab, aprovechando la serie de artículos sobre Git.
¿Que es CodeIgniter?
CodeIgniter es un framework, un conjunto de librerías, para el desarrollo rápido de aplicaciones web con PHP. Se trata de una herramienta de software libre, liberada bajo licencia MIT.
Los requisitos del servidor
¿Que necesitas para el servidor donde corra tu aplicación con CodeIgniter? Los requisitos son bastante sencillos, y prácticamente cualquier servicio de hospedaje te los puede ofrecer:
- Un servidor de bases de datos (en el caso de que tu aplicación trabaje con base de datos). Puede ser MySQL/MariaDB, Oracle, PostgreSQL, MS SQL, SQLite, CUBRID, Interbase/Firebird y ODBC. Es posible utilizar otras bases de datos, pero tendrás que localizar su driver.
- PHP versión 5.6 o superior. Aunque también puede funcionar con versiones anteriores, pero no es lo más recomendable.
Características de CodeIgniter
Como he comentado anteriormente, CodeIgniter es un conjunto de herramientas que nos permite desarrollar aplicaciones web rápidamente. Mucho más rápidamente que si lo hiciéramos desde cero. El objetivo es que te centres en tu proyecto y se minimice la cantidad de código que tienes que escribir para desarrollarlo. Esta es solo una de las características que hacen CodeIgniter tan interesante. Algunas otras son las siguientes:
- Es realmente ligero. El núcleo principal utiliza unas pocas librerías, mientras que el resto de librerías se carga solo cuando las necesitamos. Así, la base de este sistema es ligera y rápida.
- Es rápido. De hecho, los desarrolladores de este framework te retan a que encuentres otro framework con mejor desempeño que CodeIginiter.
- Utiliza el patrón de diseño Modelo–Vista–Controlador, con las ventajas que esto representa en el desarrollo de cualquier aplicación, como la separación del Modelo y la Vista, la gestión de errores, la escalabilidad del sistema, la representación de datos, etc. Sin embargo, también presenta algunas desventajas, de las que nos iremos dando cuenta con el avance de los artículos. Aunque te puedo dar algún ejemplo ya: la gran cantidad de archivos que se manejan y que, conforme crece el proyecto, aumenta, creando una curva de aprendizaje mas larga y una mayor complejidad. Sin embargo, y desde mi punto de vista, tener más archivos no tiene por qué ser sinónimo de complejidad, porque nos facilita la gestión de errores.
- URLs amigables. CodeIgniter genera direcciones web amigables, que son humanamente comprensibles, limpias, y que, además, son más amigables para los motores de búsqueda.
- CodeIgniter dispone de las herramientas necesarias para realizar las operaciones más habituales que necesita hacer cualquier aplicación web. Desde acceder a la base de datos, enviar un email, validar los datos que se introducen, gestionar sesiones, editar imágenes, subir y descargar archivos, servicio de FTP, cifrado de datos, paginación, registro de errores, calendario, compresión y mucho más.
- Además de las librerías que trae por defecto, CodeIgniter se puede ampliar fácilmente con tus propias librerías, herramientas o a través de tus propias clases.
- CodeIgniter viene con su propio analizador de plantillas, que se puede utilizar en el caso de que lo necesites. Sin embargo, y al contrario que sucede con otros framework, no es obligatorio su uso. Este hecho es importante ya que, por un lado, y desde el punto de vista del desarrollador, es necesario aprender el lenguaje utilizado para las plantillas y, por el otro, y desde el punto de vista del usuario, el uso de plantillas afecta al rendimiento de la aplicación.
- El código de CodeIgniter es muy limpio y está bien documentado, lo que facilita el poder extender este framework de forma sencilla, según nuestras necesidades.
Instalación
Para empezar a desarrollar nuestra primera aplicación con CodeIgniter, tan solo debemos seguir estos 4 pasos:
- Descargar la última versión de CodeIgniter. Este enlace corresponde a la última versión en el momento de escribir este artículo. Te recomiendo que visites la página de CodeIgniter cuando vayas a hacer tu instalación, sobre todo si ha transcurrido algún tiempo.
- Descomprime el archivo que has descargado en el servidor. Por ejemplo en
/var/www/html/
. - Abre el archivo
application/config/config.php
con un editor de textos comonano
y define la dirección base, si es necesario. En mi caso,$config['base_url'] = '';
. Aquí hay muchos más parámetros que son susceptibles de configurarse, como puede ser la clave de cifrado, las cookies y más. Sin embargo, lo dejaremos para más adelante, conforme lo necesitemos. - En el caso de utilizar una base de datos necesitas configurarla. Para hacerlo, edita el archivo
application/config/database.php
y define los parámetros necesarios. En mi caso, por ejemplo:
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'pi', 'password' => '**********', 'database' => 'A6110', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
Solo he necesitado introducir el nombre de usuario, la contraseña, el nombre de la base de datos y el driver.
Es posible definir otros servidores adicionales para el caso de que se produzca un error con la conexión principal. Para ello, la definición sería algo como:
$db['default']['failover'] = array( array( 'hostname' => 'localhost1', 'username' => '', 'password' => '', 'database' => '', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => TRUE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE ), array( 'hostname' => 'localhost2', 'username' => '', 'password' => '', 'database' => '', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => TRUE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE ) );
Conclusión
En este primer artículo de la serie hemos visto las ventajas de implementar una aplicación web y las de utilizar un framework como CodeIgniter. Además, hemos instalado la última versión en nuestro servidor y hemos realizado la configuración mínima e imprescindible.
En el siguiente artículo conoceremos la aplicación web que vamos a desarrollar y aprenderemos a crear páginas estáticas, formularios y más cosillas.
Más información,
La imagen de la portada es CC0 Creative Commons.
La captura de pantalla de su sitio web la hizo el autor de este artículo.
El icono de CodeIgniter suponemos que es libre (aunque no hemos podido encontrar dónde se encuentra su licencia). Está alojado en gedelumbung.com en este caso, como puede verse al cargar la imagen.
MEEEEEEEEEEEC. ERROR. Si está bajo licencia MIT no puede ser Software Libre. En todo caso es Código Abierto. 🙂