El framework PHP CodeIgniter funciona con un URL: para dirigirse al controlador, como unidad de control central entre la vista y el modelo, es necesario introducir un URL en la barra de búsqueda del navegador web. Para ello, los desarrolladores crean las denominadas clases de controlador, archivos PHP con diversas funciones que permiten cargar librerías, extensiones o helpers, establecer conexiones a bases de datos, integrar un modelo o seleccionar una vista determinada.
El flujo de aplicación de CodeIgniter se basa en el siguiente esquema de URL básico:
example.com/class/function/parameter
Al dominio (example.com) le sigue una clase de controlador, a la cual hay que dirigirse, así como una función de controlador específica. El esquema lo cierran los parámetros opcionales, que se utilizan para asignar al controlador seleccionado ciertos identificadores o variables.
En la práctica, un URL de CodeIgnites podría tener esta construcción:
example.com/news/article/511
Este URL se dirige al controlador news en el dominio example.com y le solicita ejecutar la función article, para, por ejemplo, cargar una vista homónima para la vista de artículo. Los parámetros opcionales, que se entregan al controlador con el URL, son los encargados de indicar qué contenido se ha de solicitar de la base de datos con el modelo, en este caso un artículo identificado como 511.
En la configuración de salida, CodeIgniter ejecuta el index.php en cada URL de la aplicación:
example.com/index.php/news/article/511
Este archivo PHP contiene información sobre el lugar donde se encuentran los archivos centrales del framework, así como las librerías, extensiones o helpers integrados y sobre el directorio donde están depositados los archivos de la aplicación. El archivo index.php también sirve para inicializar todos los recursos básicos.
Si CodeIgniter se ejecuta en un servidor Apache HTTP, se puede eliminar el index.php de la dirección de la aplicación con mod_rewrite, para mostrar al usuario y a los crawlers del buscador direcciones web “limpias”. Los desarrolladores añaden el siguiente código en el archivo .htaccess del servidor web: