Creando nuestro primer hola mundo en CodeIgniter 4 y conociendo los controladores y vistas
- Andrés Cruz
En esta entrada veremos cómo podemos crear un nuestro primer hola mundo en CodeIgniter 4; ya que recuerda que ya en este punto tenemos el ecosistema ya completamente listo, cosa que hicimos anteriormente; de momento no quiero hablarte de la estructura de nuestro proyecto o del framework, cosa que haremos en una siguiente entrada, vamos a venir de una ha realizar algunas pruebas y conocer de esta manera los elementos básicos de este framework.
Lo primero que nos fijamos si vamos a app\Controllers
es que tenemos un controlador llamado Home
; si no sabes que es un controlador puedes buscar más información en Internet "MVC" y tambien puedes chequear una entrada anterior que hablamos del MVC y de la variación MTV.
En fin, en la ubicación mencionada anteriormente, tenemos un controlador llamado Home, si entramos dentro del archivo veremos algo como lo siguiente:
<?php namespace App\Controllers;
class Home extends BaseController
{
public function index()
{
return view('welcome_message');
}
//--------------------------------------------------------------------
}
Si ya has desarrollado en Codeigniter 3, seguramente verás que aquí lo que estamos haciendo es cargar una vista, un archivo de vista que se encuentran en:
app\Views
Que viene siendo otra de las capas de nuestro MVC (en esta entrada solamente vamos a tratar un poco con dos capas, la de la V y la de la C que corresponden a la vista/view y al controller/controlador respectivamente).
Ahora, ¿donde se encuentra la vista en cuestión? si vamos a app\Views
veras el archivo llamado welcome_message.php
; y si lo abrimos verás exactamente el mismo código que tienes en tu navegador (que ya vamos a eso en el siguiente bloque).
Lo siguiente que te puedes preguntar es sobre la clase que estamos extendiendo o heredando cuya ubicación también se encuentra al mismo nivel de este controlador de ejemplo, que viene siendo el que nos permite emplear esta clase como si fuera un controlador.
En cuanto al namespace, es básicamente un mecanismo que tenemos para referenciar la ubicación de un archivo, que en este caso sería el de BaseController
y con el cual podemos referencias más adelante desde otras clases, tal cual estamos haciendo aquí con el BaseController
, que si lo revisas verás que tenemos el mismo namespace que coincide con el de nuestro controlador de Home que coincide con la ubicación del archivo dentro del juego de carpetas.
Ejecutar la aplicación en el navegador
De momento no hemos hecho nada, simplemente conocer algunos elementos básicos que necesitamos conocer para hacer nuestro hola mundo en Codeigniter 4, pero vamos a la práctica, si estás empleando Laragon en Windows puedes ir a:
http://codeigniter4.test
En donde codeigniter4 es el nombre de tu proyecto:
Si no lo estás empleando, puedes acceder de la siguiente manera:
http://localhost/codeigniter4/public/index.php
o
http://localhost/codeigniter4/public/
Uno de lo cambios importante que nos trae CodeIgniter 4 es que ahora el archivo de arranque el index.php se encuentra dentro de la carpeta public
También puedes emplear la línea de comandos de spark, en la cual ya disponemos de un servidor que podemos emplear para levantar nuestra app sin necesidad de emplear Apache de nuestro (W)LAMP con el siguiente comando:
php spark serve
Luego, con este comando verás un resultado como el siguiente y podrás ingresar ahora mediante http://localhost:8080/
En fin, sin importar como accedas, verás la siguiente ventana:
Que es el mismo cuerpo que analizamos anteriormente del archivo llamado welcome_message.php dentro de la carpeta views.
Creando nuestra primera función
Ahora que ya sabemos que nos trae el proyecto y porque funciona como funciona, vamos a extender este controlador con mas vistas, es decir, para poder ver mas contenido y no solo una pantalla de bienvenida, para eso podemos crear más funciones en la clase Home que viene siendo nuestro controlador; por ejemplo la siguiente función:
public function test()
{
return "Hola CodeIgniter 4 - Primera vista";
}
Manejo de las rutas y controlador por defecto
Ahora en este punto, te puedes preguntar cómo configuramos la ruta, es más, si analizamos un poco te puedes preguntar cómo es que nosotros podemos acceder a la función de index en el controlador de Home en la raíz de nuestra app; esto se hace en base a un archivo para manejar las rutas que si en Codeigniter 3 era opcional, aquí es obligatorio; para ver el mismo tienes que ir a:
app\Config\Routes.php
Y aquí verás que no tenemos ninguna ruta!, pero tenemos unas configuraciones interesantes al igual como ocurre con la versión anterior de CodeIgniter:
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
Con este par de líneas de código como puedes suponer estamos especificando cual es el controlador y la función por defecto en nuestro controlador que por defecto esto lo que hace es que se muestre en la raíz de nuestro sitio, es decir:
http://localhost/codeigniter4/public/
o
http://codeigniter4.test
Pero cómo podemos hacer para definir nuestras rutas entonces, para eso, si revisamos la documentación oficial, veremos que tenemos el uso de las rutas, y como la ruta que nos interesa configurar seria al momento de que nuestro usuario accede a nuestro navegador, es decir, una petición de tipo GET.
Como puedes suponer, este manejo de las rutas es muy similar al que nosotros hacemos en otros framework como lo son Laravel o Django, en el cual tenemos un archivo extra para manejar esta capa extra en nuestro MVC e indicar cual es la ruta asociada a un controlador, específicamente indicamos cual es la URI y la pareja de Controlador y función que va a procesar esta ruta.
Ahora, como puedes suponer, podemos crear más rutas, por ejemplo para nuestra nueva vista, para eso, como puedes ver en la ruta que a tenemos configurada solamente tenemos que poner sería, la URI, el controlador y la función asociada a la misma; y esto seria todo; en nuestro caso:
$routes->get('/test', 'Home::test');
Por ejemplo, si queremos que nuestro usuario pueda acceder con
http://localhost/codeigniter4/public/index.php/test
o
http://codeigniter4.test/test
Simplemente creamos la siguiente ruta:
$routes->get('/test', 'Home::test');
Y con esto, si vamos a nuestro controlador de Home y creamos la siguiente función:
public function test() {
return "Hola CodeIgniter 4 - Primera vista";
}
Buala! Accedimos a nuestro Hola mundo en el controlador de Home, ahora qué pasa si quieres crear más controladores, por ejemplo, para crear más vistas que estén agrupadas en este controlador:
Creando nuestro primer controlador y vista asociada
Perfectamente podemos seguir el mismo patrón que vimos anteriormente para crear otro controlador, por ejemplo uno llamado Admin en app/Controllers:
<?php
namespace App\Controllers;
class Admin extends BaseController
{
public function index()
{
return "Admin";
}
}
Creando la ruta
Ahora, necesitamos el mecanismo para acceder a la misma, es decir, necesitamos definir una ruta para poder acceder al controlador que creamos anteriormente:
$routes->get('/admin', 'Admin::index');
Y con esto:
Conclusiones
En esta entrada dimos los primeros pasos en CodeIgniter 4, vimos parte de su estructura y cómo podemos crear rutas y los métodos y controladores que se encargan de procesar estas rutas; cosa que vamos a ver en la siguiente entrada.
Recuerda que si te quedas con ganas de mas, dispongo de un curso en esta plataforma que puedes tomar desde esta web.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter