Primeros pasos con CodeIgniter

Siguiendo este tutorial podrás crear de manera muy sencilla una aplicación de estructura MVC con CodeIgniter.

Índice de contenidos

1. Introducción

CodeIgniter es un framework de código abierto para crear aplicaciones web utilizando arquitectura MVC. Permite a los desarrolladores realizar proyectos de manera muy rápida, con una interfaz simple y una lógica muy sencilla.

Trabajar con una estructura MVC facilita la organización del código y poder establecer una división entre el acceso a datos, la lógica de negocio y la capa de presentación de nuestra aplicación.

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 17’’ (2.66 GHz Intel i7, 8GB 1067 Mhz DDR3, 500GB Flash Storage).
  • Sistema Operativo: Mac OS X El Capitan 10.11.4
  • Entorno de desarrollo: Eclipse Mars for PHP Developers
  • Apache/2.4.18
  • PHP 5.5.31
  • MySQL Community Server 5.7.12
  • CodeIgniter 3.0.6

3. Instalación de CodeIgniter

La instalación de CodeIgniter es muy sencilla. Partiendo de que ya tienes instalado en tu equipo tanto PHP como Apache, solo debes seguir los siguientes pasos:

  • Lo primero que debes hacer es crear un proyecto PHP.
  • A continuación, descarga la última versión de CodeIgniter de la página oficial.
  • Descomprime el zip que has descargado y copia o arrastra su contenido dentro del proyecto de PHP que has creado previamente.

Ya has instalado CodeIgniter y está listo para empezar a trabajar con él. La estructura de tu proyecto debe haber quedado así:

Estructura ficheros CodeIgniter

3.1. Configuración

Aunque nuestro entorno ya está preparado para empezar a escribir código, es recomendable modificar los ficheros de configuración para facilitar algunas tareas.

  • Modificando el archivo application>config>routes.php, puedes cambiar el controlador por defecto, de manera que al escribir la URL Base de tu proyecto en el navegador, se ejecute la acción que tú quieras. Puedes cambiarlo en la siguiente línea:
  • Es importante tener clara cuál es la URL que llamará a nuestra aplicación. Para poder acceder a ella de manera sencilla desde tu código sin necesidad de escribirla constantemente, CodeIgniter pone a tu disposición el helper URL. Si quieres utilizarlo, deberás modificar dos ficheros.

    • En primer lugar, debes definir tu URL Base en application>config>config.php. En ese mismo fichero puedes definir muchas otras cosas, como el charset, el proxy o la configuración de cookies y variables de sesión.
    • Seguidamente, en application>config>autoload.php tienes que cargar el helper URL para evitar hacer un include cada vez que quieras utilizarlo.
    • En ese mismo fichero, comprueba que cargas automáticamente la conexión a base de datos:

A la hora de llamar a nuestra aplicación desde el navegador, CodeIgniter lo hace de la siguiente manera:

base url

Para prescindir del elemento index.php y que apache reescriba las urls, puedes incluir en la raíz de tu proyecto un fichero .htaccess con la siguiente configuración:

4. Operaciones básicas

Tras instalar CodeIgniter, puedes mostrar tu aplicación en el navegador simplemente introduciendo la URL Base, y aparecerá la vista que carga el controlador por defecto, definido en el fichero routes.php, como indicaba anteriormente. Si la muestras en este punto, se cargará la página de bienvenida del controlador Welcome.php.

Index CodeIgniter
Para poder visualizar la salida de la aplicación es importante que tu proyecto esté desplegado en el Document Root del servidor.

4.1. Modelo

El modelo es el encargado del acceso a datos. Para este ejemplo he creado una base de datos en MySQL, con una sola tabla llamada “Usuarios”, de manera que pueda acceder a ella y mostrar su contenido en la vista.

4.1.1. Configuración del acceso a BBDD

La configuración de la base de datos se encuentra en el fichero application>config>database.php, donde debes modificar algunos parámetros, como el nombre de la base de datos, el usuario y la contraseña.

4.1.2. Acceso a datos

A continuación, crea una clase model que extienda de CI_Model en application>models. Para este ejemplo solo necesitarás una función que seleccione todo el contenido de la tabla “Usuarios”.

modelo CodeIgniter ejemplo

Como ves, CodeIgniter establece la conexión con la base de datos por ti, y solamente tienes que indicarle a la variable “db” el método que necesites y el nombre de la tabla a la que quieras acceder.

Una vez obtengas el resultado de tu query, utiliza la función result_array() para transformarlo en un array y hacerlo más manejable. Tu función debe devolver dicho array para que pueda ser recogida por el controlador.

4.2. Controlador

Crea un archivo Usuarios.php en application>controllers que contenga una clase del mismo nombre y que extienda CI_Controller. Escribe la siguiente función:

controller CodeIgniter ejemplo

La primera línea carga el modelo que hemos creado previamente. El segundo argumento es un alias para agilizar la escritura de código, y el tercero indica que quieres que efectúe la conexión con la base de datos automáticamente.

La segunda línea llama a la función getAll() sobre el alias del modelo, y almacena el resultado en la variable $datos[‘Usuarios’].

Por último, carga la vista (que aún no has definido), que mostrará los datos y, para ello, le pasamos éstos como argumento.

4.3. Vista

Crea un último archivo usuarioSaludo.php en application>views. En el paso anterior has pasado a esta vista la variable $datos, de modo que lo único que tienes que hacer es acceder a ella a través de las claves de dicho array (en este caso la clave es ‘Usuarios’).

Como la consulta del modelo ha devuelto todas las filas de la tabla, selecciona el elemento 0 para que solo muestre el primer usuario. Si quisieras mostrarlos todos, podrías recorrerlos con un bucle. Indica también el nombre del campo de la tabla que necesites.

vista CodeIgniter ejemplo

5. Despliegue

Tu aplicación ya está lista para ver el resultado. Para ello solo debes abrir tu navegador y escribir la URL Base, seguida del nombre de tu controlador y el nombre de la función que quieras llamar.

despliegue

6. Conclusiones

CodeIgniter es un framework ligero, sencillo e intuitivo que permite crear aplicaciones PHP rápidamente. Al trabajar con él, se parte de una estructura predefinida que agiliza la tarea del programador, haciendo muy fácil el acceso a datos y el manejo de éstos.


7. Referencias