introduccion-code-igniter

Este artículo es una excelente colaboración de Jesus Yepes, a quien puedes leer en su blog. Recuerda que la invitación esta abierta para publicar tus artículos.

En este pequeño post voy a hacer un breve repaso sobre las razones más importantes de usar un Framework para php, para realizar nuestros desarrollos de forma más rápida y eficiente (y por qué está de moda, todo hay que decirlo).

Lo primero que deberías hacer, es ver en qué posición estás. Un framework está pensado para gente que tiene un dominio, al menos medio, del lenguaje de programación en el que está hecho (en este caso PHP) y que quieren realizar sus proyectos de una forma más ordenada rápida. Si estás empezando con php este NO es el camino que debes seguir. Deberías empezar aprendiendo PHP “a pelo” para después elegir el mejor framework para tu caso.También es de agradecer estar familiarizado con el modelo de programación orientada a objetos en PHP.

¿Por qué Code Igniter?

Cuando me picó el gusanillo de los frameworks en PHP, estuve buscando opiniones sobre cual usar. Obviamente, cada uno tiene sus preferencias, pero en algo que todos coinciden es que Code Igniter tiene una gran documentación y comunidad, requisito indispensable si estás empezando en este mundillo, ya que tarde o temprano tendremos alguna duda y a alguien le tendremos que preguntar… ¿no?

Además, Code Igniter es altamente extensible, es rápido, soporta PHP 4 (en la última versión estable, 1.7.2). Las futuras versiones no soportarán PHP 4, requerirán PHP 5 para funcionar.

Code Igniter utiliza MVC, un estilo de programación en el que la aplicación está separada entres capas:

  • Modelo: Es el que procesa / obtiene los datos. Generalmente, lo usaremos sobre todo para gestionar la entrada y salida de los datos en nuestra base de datos.
  • Vista: Llamada desde el controlador, es la que forma los datos para representarlos en pantalla. En Code Igniter ( y cualquier framework para web) es la que montará todo el código html).
  • Controlador: Como su nombre indica, es el que “controla” que pasa en nuestra aplicación.Básicamente, y a grandes rasgos, un controlador recibe una petición, obtiene datos de un modelo, los procesa, y se los pasa a la vista para que los muestre de forma adecuada.

Además, en Code Igniter tenemos helpers, hooks y librerías, pero de esto ya hablaremos más adelante. A grandes rasgos, los helpers son un conjunto de funciones agrupadas por funcionalidad, es decir, tenemos un helper para crear formularios, tenemos un helper para trabajar con fechas, etc. Las librerías, son clases. Tenemos librerías para enviar emails, tenemos librerías para validar los datos que nos llegan de un formulario, etc.

Hola Mundo!

Nota: Es necesario tener un servidor web que soporte php, instalado, configurado y funcionando. Para las pruebas, usaremos una máquina local con MAMP corriendo en MacOs.Puedes usar Wamp en windows, Mamp en mac o Mamp en GNU/Linux, o puedes montar Apache +PHP + MySQL a mano.

Empezamos con una aplicación de ejemplo, dejémonos de rollos. Vamos a Codeigniter.com y nos descargamos la última versión (1.7.2 a la hora de escribir esto). Una vez la descargamos, veremos que tenemos dos directorios: System y user_guide. La carpeta user_guide es la documentación que podemos encontrar en su web en formato HTML,no es necesario para que nuestra aplicación funcione.

La descargamos y descomprimimos en un directorio de accesible por nuestro servidor web.Tendremos el directorio system (que contiene el framework en sí), el directorio application que veis (está dentro de system, solo que yo lo muevo fuera para poder tenerlo todo más separado) y el archivo index.php, que es el encargado de poner en marcha todo el framework. El directorio user_guide y el archivo license los he borrado, por que no son necesarios para el uso del framework.

code-igniter-directorios

Lo primero que debemos hacer es editar el fichero application/config/config.php y poner los datos de nuestro servidor, en el primero parámetro, $config[‘base_url’]=http://example.com/; cambiando example.com por nuestra URL, en mi caso: http://localhost/Sites/ci-baw/

Nota: Aseguraros de terminar siempre la url con: /

Ahora, accedemos a dicho directorio mediante nuestro explorador favorito (ni que decir, que para el desarrollo web, Firefox + Firebug)

code-igniter-inicio

Podemos ver que todo ha salido bien. Nos sale una página por defecto, en la que nos dice que ha cargado la vista welcome_message.php y que corresponde al controlador controllers/welcome.php.

Bueno, vamos a entrar a ver el código, y a entender por que ha ejecutado el controlador welcome y como se ha cargado la vista.

Abrimos el archivo applicattion/config/routes.php:

code-igniter-welcome

Veremos las siguientes líneas de código:

$route['default_controller'] = "welcome";
$route['scaffolding_trigger'] = "";

Eso le está diciendo a Code Igniter que el controlador, si no especificamos ninguno,será “welcome”. El parámetro scaffolding_trigger no lo veremos de momento.

Ahora, abrimos el fichero application/controllers/welcome.php.

<?php
class Welcome extends Controller {
function Welcome()
{
parent::Controller();
}

function index()
{
$this->load->view('welcome_message');
}
}

Vamos a ver, el controlador se llama siempre igual que el nombre del fichero, pero con la primera en mayúscula, y debe extender siempre la clase Controller. Si declaramos un constructor (por que lo necesitemos), en PHP 4 function Welcome(), en PHP 5 function__construct(), lo primero que debemos hacer siempre dentro de dicho constructor es llamar al constructor de la clase padre, en este caso, parant::Controller(). El constructor lo definiremos cuando necesitemos asignar valores globales para toda la clase, o cargar librerías o helpers que los utilizaremos en toda la clase.

El método index, es el que se ejecuta si no hemos dicho lo contrario. Este método, lo único que hace es cargar una vista, ‘welcome_message’. Si abrimos el fichero application/views/welcome_message.php veremos que contiene el código que genera la página que hemos visto en nuestro explorador.

Ahora, a modo de ejemplo y para terminar, vamos a crear una función dentro del controlador Welcome.

function hola_mundo()
{
echo 'Hola Mundo desde Code Igniter';
}

Visitamos, dicha página con nuestro navegador, en mi caso vamos a:

http://localhost/Sites/ci-baw/index.php/welcome/hola_mundo

Nota: Ya veremos pronto como quitar el index.php de ahí en medio.

Y hasta aquí esta pequeña introducción, quizá demasiado abstracta, pero necesaria cuando se ve algo nuevo.

Espero vuestros comentarios y sugerencias para los siguientes posts sobre Code Igniter.