Para los que no sepan qué es el MVC cabe decir que ya fue explicado en este manual de CodeIgniter, concretamente en el capítulo Modelo - Vista - Controlador en CodeIgniter. Así que podemos pasar directamente a explicar las particularidades de los controladores en este entorno de programación.
Para explicar los controladores voy a basarme en la propia documentación del framework PHP, que está tutorializada, como ya dijimos en la introducción a CodeIgniter. Por lo que resulta una manera excelente para aprender a dar los primeros pasos en el desarrollo de aplicaciones.
Por ejemplo, esta podría ser una URL de nuestra aplicación:
midominio.com/index.php/articulos
En la URL anterior podemos ver que la palabra "artículos" determina la página que queremos ver dentro de nuestra aplicación. Pues bien, para poder atender esta solicitud nosotros vamos a tener que crear un archivo llamado articulos.php (el controlador) dentro del directorio que aloja los controladores de nuestra aplicación.
Por tanto, cuando CodeIgniter detecta una URL como esta, intentará acceder al archivo articulos.php, para cargarlo, procesarlo y de ese modo mostrar la página con los contenidos de esta sección.
Cuando ese controlador no se encuentre entre los archivos de controladores de CodeIgniter, simplemente se mostrará un error 404 de página no encontrada. Si se encontró el controlador, como se decía, se carga y se procesa para mostrar la página.
Los controladores en CodeIgniter se guardan en la carpeta "system/application/controllers/", que se encuentra dentro de los archivos de CodeIgniter.
El código de este primer controlador será el siguiente:
<?php
class Articulos extends Controller {
function index()
{
echo 'Bienvenido a mi primer controlador en CodeIgniter';
}
}
?>
Este archivo lo tenemos que guardar como "articulos.php" en la carpeta "system/application/controllers/". Caben señalar unos detalles importantes:
Una vez creado el archivo, podemos acceder con el navegador al controlador, con una URL como esta:
http://localhost/index.php/articulos
En el siguiente artículo veremos cómo podemos crear funciones en los controladores, para dar lugar páginas distintas que dependan del mismo controlador.
midomino.com/index.php/
O bien en esta otra:
midominio.com/
Esto, que sería la home de la aplicación CodeIgniter, y eventualmente la home del dominio, si es que hemos instalado el framework en la raíz del directorio de publicación, invoca también un controlador, que es el controlador por defecto.
El nombre del controlador predeterminado (Default Controller) puede ser variable, siendo el desarrollador el encargado de configurarlo en uno de los archivos de configuración de CodeIgniter, que se encuentra en el fichero "application/config/routes.php".
En ese archivo simplemente tenemos que buscar el valor $route['default_controller'] y asignarle el nombre de la clase donde está el controlador que queramos que se invoque. Como es el nombre de una clase de un controlador tendremos que escribirlo con la primera letra en mayúscula.
$route['default_controller'] = 'Articulos';
Si observamos el valor de esta variable de configuración, tal como está en el momento inicial, después de la instalación de CodeIgniter, veremos que el controlador por defecto está en la clase "Welcome", archivo application/controllers/welcome.php