Hoy en día quien no ha oido hablar de Laravel; el cual es un framework exelente y muy popular, quien se caracteriza de tener una gran comunidad, actualizaciones recurrentes y todo tipo de integración, paquetes y funcionalidades que podemos usar muy facilmente.
Laravel es un framework para PHP que que se utiliza para desarrollar aplicaciones web del lado del servidor, pero, podemos integrarlo facilmente con otras tecnologías como Node, Vue, React enttre otros ya que desde un poryecto en Laravel, tambien tenemos acceso a Node.
Laravel ofrece un conjunto de funciones y herramientas que permiten crear un código limpio, estructurado y fácil de mantener y lo mejor de todo que es escalable con la inmensa cantidad de funcionalidades que cuenta el framework.
Un proyecto en Laravel esta segmentados exqusitamente en módulos que van desde la gestión de bases de datos, autenticación, validación, routing, vistas con blade, modelos, migraciones y muchos más.
Una de las características más fascinantes que tiene Laravel es su ORM llamado Eloquent con el cual, podemos hacer consultas usando el Query Builder o el propio Eloquent.
Además, Laravel tiene una gran comunidad de desarrolladores que contribuyen regularmente con paquetes y librerías para la mejora de la plataforma. Es una herramienta muy útil para desarrolladores que buscan aumentar su productividad y construir aplicaciones web profesionales y de alta calidad de forma rápida y eficiente.
En este punto espero haberte convencido de trabajar con Laravel.
Crear un proyecto en Laravel
En esta entrada, vamos a crear nuestra primera aplicación en Laravel en Windows; antes de comenzar es necesario que dispongas del ecosistema necesario de Laravel que puedes encontrar más información aquí:
Recuerda que si quieres emplear Laragon en Windows pero no sabes como preparar todo para que esté a punto tenemos una entrada en la cual preparamos nuestro ecosistema para trabajar en Laravel instalado y nuestro proyecto creado
Cómo puedes darte cuenta, es una lista de software a tomar en cuenta, ya que necesitamos un poco de todo para trabajar con Laravel cómodamente lo cual vamos a analizar en la siguiente sección.
Software necesario para crear nuestras apps en Laravel
Puedes instalar todos estos software de manera manual y esto ya escapa del alcance de esta entrada, o puedes instalarlos un software conocido como Laragon, el cual nos brinda de todas las herramientas necesarias para empezar a crear nuestras aplicaciones en Laravel; lo mejor de todo es que si ya dispones de parte del software necesario instalado en tu equipo como composer, Node/NPM o un LAMP, esto no afecta a Laragon y viceversa; puedes instalar Laragon con total confianza de que nada en tu PC va a dejar de funcionar.
Un poco sobre Laragon, el elegido para trabajar con Laravel
Laragon en resumidas cuentas es un kit de software necesarios y fundamentales para crear nuestras apps en Laravel o cualquier otro framework PHP o incluso Node; nos trae ya listos Node, NPM, Composer, Redis, el LAMP completo, una terminal decente y otros agregados pero esto ya lo tratamos anteriormente.
Creando nuestra primera aplicación en Laravel
El tema de Laravel siempre es algo más complicado si lo comparas con otros frameworks como CodeIgniter, en lo que se refiere su instalación y su uso; Laravel es un framework inmenso que tiene de TODO y es extensible mediante paquetes creados en específicos para Laravel o simplemente paquetes PHP; por si esto fuera poco, también cuenta con una integración perfecta con Node, por lo tanto tenemos un ENORME abanico de posibilidades no solo del lado sel servidor con Laravel, si no también desde el lado del cliente con Node que podemos integrar Vue, Bootstrap, React, Angular y cualquier cosa que pueda ser instalada mediante Node que enseñamos en mi curso de Laravel:
Una vez que ya disponemos del software necesario, lo siguiente que tenemos que hacer es crear nuestra app; para ello lo primero que debes hacer es activar tu Laragon desde el botón de "Iniciar todo":
Abres las consola que nos trae desde el botón de terminal:
![Terminal de Laragon](/public/images/example/php/laravel/primeros_pasos/ventana.png)
Y aquí vas a ejecutar el comando que veremos en la siguiente sección.
Instalar el instalador de Laravel 10 vía composer con Laragon
Ya tenemos todo el ecosistema preparado para desarrollar nuestras apps en Laravel 10; pero antes de comenzar a crear nuestro proyecto, necesitamos instalar la dependencia del instalador (mediante composer) de Laravel que nos permitirá crear un proyecto Laravel mediante la línea de comandos.
composer global require laravel/installer
El comando anterior permite instalar el instalador de Laravel como una dependencia de PHP mediante composer, que era uno de los software necesarios para trabajar con Laravel.
Crear la app de Laravel vía el instalador anterior
Ahora con nuestro instalador listo, lo siguiente que vamos a hacer es crear nuestra aplicación en Laravel; ejecutamos:
laravel new blog
En donde blog es simplemente el nombre que le des a tu proyecto de Laravel; puedes colocarle cualquier nombre, sin espacios, caracteres especiales, etc; intenta dejarlo simple.
Y con esto ya tenemos nuestro proyecto en Laravel en su última versión perfectamente creado.
La segunda opción disponible para crear un proyecto en Laravel, es sin emplear el instalador de Laravel y empleando composer en su lugar:
$ composer create-project laravel/laravel larafirststeps
En la cual, inclusive tienes la ventaja de poder especificar una versión en especifica; por ejemplo:
$ composer create-project laravel/laravel="11.*" larafirststeps
En ambos casos tendremos como resultado tendrás una carpeta nueva que corresponde al proyecto en:
C:\laragon\www
llamada "larafirststeps"
Reinicia tu Laragon en la opción de Recargar o desde el botón de "Detener" y luego "Iniciar Todo" y en ese momento, saltará una notificación de Windows que dice que Laragon intenta modificar el sistema (el archivo de host de Windows); debes aceptar dicha modificación, y con eso, podrás acceder de la siguiente manera:
http://larafirststeps.test
Si creas el proyecto por composer, adicionalmente debes de ejecutar las migraciones:
$ php artisan migrate
El uso de las migraciones lo veremos más adelante en el libro; para ejecutar el comando anterior, recuerda que debes de estar dentro del proyecto.
Explicación general de un proyecto Laravel
Como puedes ver, Laravel cuenta con una cantidad importante de de archivos y carpetas que en conjunto conforman el framework y su estructura; emplea un poco de todo desde integración con el NPM mediante Node hasta todo lo necesario de un framework desde el punto de vista de PHP; aquí vamos a explicar un poco la siguiente estructura para que sepas que hace cada componente en términos generales:
![Arbol del proyecto](/public/images/example/php/laravel/primeros_pasos/estructura_proyecto.png)
- La carpeta de
routes
podemos crear nuestras rutas para nuestra aplicación, es decir, la forma en la cual podemos acceder a las funciones definidas dentro de nuestros controladores, debemos de especificar una ruta para indicar que ruta va a corresponder a qué controlador y su función. - La carpeta
resources
almacena los recursos webs sin compilar o generarse; es decir, archivos sass de CSS, o importaciones y definiciones de módulos de Node (tambien veras que tenemos unpackage.json
para definir las dependencias de Node), son definidos aquì y mediante un comando son generados en la carpetapublic
en la cual tenemos nuestros archivos CSS y JS listos para que sean consumidos por nuestro navegador; además aquí se encuentran otros recursos como imágenes, vídeos, etc; en la carpetaresources
también se encuentran nuestras vistas. - También tenemos la carpeta de
config
, en la cual podemos realizar distintas configuraciones de nuestra aplicación; base de datos, emails, etc; disponemos de un archivo llamado.env
el cual es ideal para ambientes de desarrollo en donde tenemos configuraciones globales y generales de nuestro proyecto; las mismas configuraciones que conseguimos en la carpeta anterior las podemos definir aquí para hacer una clara distinción entre las configuraciones de desarrollo (las almacenadas en el archivo .env) y las configuraciones de producción (las que se encuentran definidas en los múltiples archivos dentro de la carpeta config). - Tenemos una carpeta
Http
en donde se encuentran nuestros controladores, y también otro componente que son los middleware que definen funciones en las cuales podemos interceptar y ejecutar acciones antes del controlador y otra carpeta llamadaRequests
en donde se generan archivos de validación para los formularios. - La carpeta
vendor
almacena las dependencias de Laravel instaladas mediante composer, así como cualquier otra dependencia instalada por nosotros. - En la carpeta
node_mdoule
que solo la tendrás si ejecutas el comando denpm install
se encuentran todos los módulos de node.
Estos son algunos de los componentes más importantes, pero puedes tomar la lista completa en: Laravel: Directory Structure.
Artisan: La línea de comandos para crear componentes en Laravel
Ya en este punto conoces la estructura de un proyecto en Laravel, ya podemos empezar a crear componentes; para crear los distintos componentes que te explicamos en la anterior sección, empleamos la línea de comandos, mediante artisan que es la que se encarga de crear los distintos componentes de Laravel; para conocer todo lo que podemos crear, ejecuta:
php artisan
Y verás una lista muy completa y organizada de todo lo que podemos hacer con Laravel, desde crear controladores, modelos, migraciones y muchas otras cosas que iremos a tratar en otra entrada; pero quédate con la idea en que aquí podemos realizar distintas operaciones para crear componentes en Laravel.
Conclusiones
Y hasta aquí dejamos esta primera entrada de como dar los primeros pasos con Laravel en donde ya instalamos las herramientas y software necesarios para crear la aplicación en Laravel y conocemos la estructura de un proyecto e introducimos la línea de comandos conocida como artisan y por supuesto, crear y conectar a nuestra base de datos en MySQL.
Recuerda que si te quedas con ganas de más, cuento con múltiples recursos entre libros y cursos para dominar Laravel.
Si te quedastes con ganas de más, puedes ver otros artículos sobre Laravel, mi curso o libro sobre Laravel o esta lista de reproducción: