CodeIgniter 4 – Creación de proyecto y repaso por novedades

En este post te voy a mostrar cómo comenzar a programar un proyecto de CodeIgniter versión 4 que recientemente ha alcanzado la fase beta.

CodeIgniter 4, al momento de escribir este post todavía está en beta, pero muy pronto alcanzará la versión estable.

No olvides que para esto se necesita Composer y PHP.

Novedades de CodeIgniter 4

Tenemos varias novedades; la nueva versión de CodeIgniter 4 cuenta con namespaces y una estructura cambiada.

Encontramos todo el MVC en la carpeta app. Los modelos en Models, los controladores en Controllers y finalmente las vistas en Views.

El index.php (punto de entrada de nuestra app) está en public; en ese mismo directorio debemos colocar todo lo que sea público, por ejemplo nuestros archivos de JS, CSS, imágenes, etcétera.

Estructura de directorios en CodeIgniter 4

Una gran novedad es que ahora va a usar Composer para gestionar sus dependencias, como todo software de PHP que se respeta.

La carpeta writable será el directorio en donde se pueden colocar los archivos dinámicos relacionados a nuestra app (por ejemplo, fotos de perfil de usuarios, documentos PDF, etcétera).

Finalmente, dentro de la estructura, vemos que tiene un archivo env que guarda nuestras contraseñas y credenciales para distintos servicios.

Ahora las rutas están en app/Config/Routes.php y pueden especificarse desde ahí, a diferencia de cuando cada ruta pertenecía a un controlador.

Crear aplicación de CodeIgniter 4

Abre una terminal y navega hasta la carpeta padre que alojará el proyecto. Ahí, ejecuta:

Lo que estamos haciendo es clonar el appstarter de CodeIgniter 4 usando composer create-project.

Crear aplicación de CodeIgniter 4 con Composer

La carpeta o directorio en donde estará la app es probando-ci4

Especificamos --stability beta ya que el proyecto todavía no está estable y composer no dejaría clonarlo si no especificamos esto

La opción de --no-dev es para no instalar las dependencias del desarrollo de CodeIgniter, pues queremos usar CodeIgniter 4 para desarrollar apps, no queremos modificar el núcleo del mismo.

Si visitas tu app en el navegador (en mi caso es http://localhost/probando-ci4/public/) verás que aparece la bienvenida de CodeIgniter 4:

CodeIgniter 4 – Aplicación en navegador

Ahora abre el directorio en donde creaste la app con tu editor de textos o IDE favorito.

Hola mundo en CodeIgniter 4

Para hacer esto muy sencillo vamos a hacer que al visitar una ruta se muestre una vista creada por nosotros y que se muestre la fecha y hora actual.

Creamos la vista en app/Views/hola.php con el siguiente contenido:

Ahora modificamos el controlador ubicado en app/Controllers/Home.php y agregamos una función para que muestre la vista que acabamos de crear de manera que quede así:

Finalmente vamos a modificar nuestras rutas en app/Config/Routes.php y vamos a agregar lo siguiente en las definiciones de rutas:

$routes->get('/hola', 'Home::hola');

Estamos indicando que cuando se haga una petición get con la ruta /hola se llame al método hola ubicado en el controlador Home.

El archivo completo debe verse así (línea 76):

Ahora visita /hola en tu navegador (en mi caso es http://localhost/probando-ci4/public/hola) y debería mostrarse algo así:

Vista de CodeIgniter 4

Has creado tu primer vista con CodeIgniter 4.

Actualizar framework

Cuando haya actualizaciones del framework simplemente hay que ejecutar:

composer update

De esta manera se van a actualizar las dependencias, incluyendo el mismo framework. Adiós a las descargas de zip y todas esas cosas.

Conclusión

No quise hacer esta guía tan larga, y tampoco meterme con bases de datos y otras cuestiones, aunque ya se pueden probar.

Este post fue una introducción a las novedades de CodeIgniter 4, pero recuerda que el framework todavía no está listo para ir a producción, toca esperar más.

De todos modos, CodeIgniter 4 ha cambiado completamente su estructura, cosa que necesitaba realmente.

Finalmente dejo un enlace a la documentación oficial de esta versión 4 del framework de PHP.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *