Laravel se ha vuelto muy popular desde 2011, siendo usado por más de 1,3 millones de sitios web.1 Abunda en Estados Unidos con 284.000 de esos sitios. Es ideal para construir proyectos web rápidamente.2 Por eso, la necesidad de desarrolladores de Laravel va en aumento. Aquí te enseñaremos cómo ser un experto en este framework. Aprenderás acerca del desarrollo en Laravel, su funcionamiento y las habilidades que necesitas.
Aspectos clave
- Conocer los fundamentos del desarrollo web con PHP
- Aprender a utilizar el framework Laravel para crear aplicaciones web modernas
- Dominar las características y herramientas integradas en Laravel
- Desarrollar habilidades en programación orientada a objetos y arquitectura MVC
- Implementar características de seguridad y autenticación de usuarios
¿Qué es Laravel?
Laravel es un marco de desarrollo para sitios y aplicaciones web. Taylor Otwell lanzó su primera Beta el 9 de junio de 2011.3 Desde entonces, Laravel ha tenido ocho versiones principales. Estas incluyen Laravel 2 en septiembre de 2011, Laravel 3 en 2012, y así sucesivamente.3
Este framework PHP ayuda a los desarrolladores a construir rápidamente en la web. Proporciona una biblioteca de módulos preprogramados. Laravel se basa en la arquitectura MVC. Este método divide el trabajo en modelo, vista y controlador.
Ventajas de utilizar Laravel
Laravel es genial para desarrolladores y empresas. Es fácil de usar2. Ahorra tiempo porque usa una biblioteca de herramientas listas. Esto significa menos código para escribir2. También incluye pruebas y seguridad3.
Para las empresas, hace que sus aplicaciones estén listas rápido2. Se conecta bien con correos y cachés2. Incluye protección contra ataques para mantener los datos seguros3. Laravel está basado en el arquitectura MVC, que organiza mejor el trabajo de creación3.
Fácil de aprender
Laravel es uno de los frameworks más sencillos de utilizar2. Está diseñado para que los desarrolladores se centren en hacer sus proyectos. Tiene una documentación completa y didáctica2. Esto ayuda a aprender rápido, sobre todo si ya sabes algo de PHP.
Bibliotecas y herramientas incorporadas
Laravel brinda una biblioteca integrada de herramientas y módulos muy útil2. Con cosas como sistema de autenticación, ORM Eloquent, CLI Artisan, y pruebas automáticas3. Todo eso viene de fábrica con Laravel. Ayuda a los equipos a ser más productivos.
Arquitectura MVC
El modelo Modelo-Vista-Controlador (MVC) es seguido por Laravel3. Divide la lógica de la aplicación en partes claras. Esto hace más fácil mantener, ampliar y asegurar las aplicaciones hechas con Laravel.
Instalación y configuración de Laravel
Antes de instalar Laravel, asegúrate de que PHP y Composer estén en tu equipo. Composer ayuda a PHP a manejar sus paquetes.4
Requisitos previos
Laravel requiere ciertas cosas para funcionar. Necesitas un sistema Windows, macOS o Linux. Además, debes tener PHP y Composer listos en tu máquina.4
Instalación mediante Composer
Empieza instalando Composer. En una terminal, escribe:
curl -Ss https://getcomposer.org/installer | php
Esto instalará Composer.4
Ahora, para Laravel, usa el comando:
composer global require laravel/installer
Así, Composer bajará y pondrá listo todo para Laravel.4
Después, haz una app Laravel con:
laravel new miAplicacion
Se formará una carpeta «miAplicacion» y tendrá todo listo para tu proyecto.4
Estructura de directorios de Laravel
Una aplicación Laravel suele tener una organización de carpetas clara y precisa. Esto ayuda a los desarrolladores a mantener y mejorar el código fácilmente. Sigue el modelo de estructura de directorios, Laravel, y organización de código. Vamos a ver los elementos principales de esta estructura:
- app/: Es la carpeta central para el código de la app. Incluye controladores, modelos, políticas, y más.5
- bootstrap/: Tiene los scripts de arranque y archivos de mapeo de clases importantes.6
- config/: Aquí se guardan los ajustes y configuraciones de la app.6
- database/: Incluye migraciones de base de datos, semillas, y fábricas de pruebas.6
- public/: Es donde están los recursos públicos, como JavaScript, CSS, y el index.php inicial.6
- resources/: Guarda los elementos de front-end, desde JavaScript y plantillas Blade hasta idiomas.6
- routes/: Contiene todas las rutas que la app necesita conocer para funcionar.6
- storage/: Guarda archivos temporales, como datos de caché y sesiones, y logs.6
- tests/: Aquí se encuentran las pruebas que verifican el correcto funcionamiento de la app.6
- vendor/: Espacio para las librerías de terceros instaladas con Composer.6
Esta distribución de carpetas en Laravel hace que el trabajo de los desarrolladores sea ordenado y eficiente. Ayuda a mantener el código limpio, escalable y fácil de actualizar, clave para el éxito en proyectos Laravel.765
Enrutamiento en Laravel
Las rutas en Laravel se guardan en archivos de la carpeta /routes. Entre ellos, web.php es crucial; tiene las rutas web para navegadores. Usan middleware web, por lo que se conectan con sesiones y tienen protección CSRF.8
Laravel ofrece también rutas de API mediante api.php. Esas rutas son sin estado y no usan sesiones ni protección CSRF.9
Definiendo rutas
Cuando se crea una nueva ruta, se escoge el método HTTP adecuado, como get() o post(). Luego, se les dice a dónde van, ya sea a una función de controlador o a una función anónima.8
Rutas web y API
En Laravel, es posible marcar rutas como públicas o privadas en el servidor. También hay funciones como redirect para enviar a los usuarios a otro lugar.9
Con el comando `php artisan route:list`, se pueden ver todas las rutas definidas. Laravel deja capturar partes de la URL usando `where` para definir reglas sobre esos segmentos.9
Laravel hace fácil dar nombres a las rutas, lo que ayuda a crear URLs. Con grupos de rutas y middlewares, se comparten opciones entre distintas rutas.9
Finalmente, los controladores en Laravel evitan que el código se vuelva un lío. Reúnen la lógica para tratar las peticiones en una sola clase.9
Controladores en Laravel
Los controladores Laravel hacen la lógica de la aplicación. Cada uno es una clase PHP en app/Http/Controllers.10
Trabajan con las peticiones y respuestas. Asocian métodos a rutas de la aplicación.10
Al usar controladores, la aplicación es más ordenada y fácil de mantener. Esto se basa en el concepto de separación de intereses. Aquí, cada parte de la app tiene su rol claro. Modelo, vista y controlador hacen su parte.11
Estadística | Valor |
---|---|
Porcentaje de controladores utilizados para organizar solicitudes HTTP en Laravel | 100%10 |
Tasa de uso del comando Artisan para generar un nuevo controlador en Laravel | 100%10 |
Ratio de controladores con métodos públicos (acciones) vinculados a rutas | 100%10 |
Formato común para vincular una ruta a un controlador y un método en Laravel | ‘Route::get(‘/ruta’, ‘Controlador@método’)’10 |
Tasa de controladores con una sola acción que utilizan el método __invoke | N/A (No especificado)10 |
Porcentaje de errores de programación detectados durante las pruebas | N/A (No especificado)10 |
Enfoque recomendado para la detección de errores durante las pruebas en Laravel | Combinación de pruebas automatizadas y manuales10 |
Desarrollo Web con PHP y Laravel: Tutorial Paso a Paso
Este tutorial te enseñará cómo hacer aplicaciones web con PHP y Laravel.3 Usado en más de 1,3 millones de sitios, es muy popular.3 Muchos de ellos, 284.000, están en Estados Unidos. Además, en GitHub, cuenta con 65.900 usuarios.
Aprenderás a hacer varias cosas:
- Instalar y configurar el ambiente de Laravel
- Entender como Laravel organiza los archivos, usando el patrón MVC
- Crear rutas y controladores para gestionar la parte lógica del programa
- Usar modelos y Eloquent, el ORM, para trabajar con la base de datos
- Desarrollar vistas y utilizar Blade, el motor de templates, para la parte visual
- Añadir registro y control de usuarios a tu aplicación
- Hacer pruebas y corregir errores en la aplicación con Laravel
11 Hablamos especialmente de Laravel 8 en este texto, que usa Blade y Eloquent. Sostienen que Laravel tiene documentación muy clara. En cambio, Symfony es excelente para proyectos más grandes.
11 Enseñamos cómo configurar Laravel y la base de datos, usando Composer. Además, compartimos cómo escribir controladores y modelos en Laravel.
11 Las rutas de la aplicación se definen en web.php. Mencionamos cómo manejar errores y las ventajas de los comandos de Artisan que ofrece Laravel.
11 Mostramos cómo manejar las plantillas Blade, que usan una sintaxis similar a PHP. Es fácil trabajar con loops y condicionales.
3 Casi el 79% de los sitios que usan un lenguaje de servidor prefieren PHP. Dicho esto, Laravel ha tenido 8 versiones importantes hasta ahora.
3 Hablando de Laravel, sus funciones más populares incluyen autenticación, un sistema ORM, y CLI. Un desarrollador de Laravel se encarga de varias tareas cruciales en el desarrollo web.
Modelos y Eloquent ORM
En Laravel, los modelos son clases PHP en la carpeta app/Models. Representan las tablas de la base de datos. Permiten interactuar con estas tablas mediante Eloquent, el ORM de Laravel.12
Definiendo modelos
Eloquent hace fácil trabajar con la base de datos. Es una capa por encima de las consultas SQL. Permite a los desarrolladores crear, leer, actualizar y eliminar datos usando métodos sencillos.12
Consultas con Eloquent
Con Eloquent, hacer consultas avanzadas es intuitivo y requiere menos código. Los desarrolladores usan los modelos para hacer búsquedas, filtros y ordenamientos. Todo esto sin tener que escribir SQL complicado.13
Característica | Valor |
---|---|
Porcentaje de modelos creados usando el comando Artisan | 100%12 |
Campos definidos en el archivo de migración | ‘id’, ‘name’, ‘description’, ‘timestamps’12 |
Porcentaje de campos protegidos por defecto en los modelos Eloquent | 100%12 |
Longitud del array $fillable en el modelo | 2 (contiene ‘name’ y ‘description’)12 |
Longitud del array $guarded en el modelo | 1 (contiene ‘id’)12 |
Número de rutas definidas para el recurso de películas | 3 (index, store, destroy)12 |
Número de rutas para acciones específicas | 2 (destroy y search)12 |
Número de controladores generados usando Artisan | 1 (MovieController)12 |
Reducción de código al usar el método ‘create’ en lugar de asignar valores individualmente | Reducido a la mitad12 |
Número de campos utilizados en la propiedad ‘fillable’ del modelo | 2 (name y description)12 |
Número de campos utilizados en la propiedad ‘guarded’ del modelo | 1 (id)12 |
Número de métodos diferentes utilizados para crear un nuevo registro de película con Eloquent | 2 métodos12 |
Número de campos incluidos en el formulario de búsqueda en ‘list.blade.php’ | 1 (name)12 |
Operador utilizado para buscar registros de películas en la función ‘search’ | ‘like’12 |
Número de parámetros en la llamada al método ‘where’ para la búsqueda | 3 (nombre de columna, ‘like’, término de búsqueda)12 |
Número de vistas creadas para las operaciones CRUD | 4 (new, list, update, index)12 |
Número de métodos utilizados para manejar la actualización de registros con Eloquent | 1 (update)12 |
Vistas y plantillas Blade
En Laravel, las vistas están en resources/views y usan Blade14. Blade simplifica la creación de plantillas. Es más fácil de entender que el PHP básico14.
Sintaxis de Blade
Blade tiene @if, @foreach, @yield y @section para hacer plantillas fáciles de reusar y organizar15. @if es para condicionales en la vista15. El uso de @else y @elseif completa las opciones de las condiciones15.
Hay también @unless para una condición inversa, @empty como atajo de comprobación y @for para bucles15. Además, @forelse maneja ciclos foreach con opción de valor por defecto15.
Layouts y herencia
Blade permite la herencia de plantillas. Las vistas hijas pueden usar la estructura de un diseño base14. Esto hace que sea fácil mantener la consistencia en la interfaz14. Gracias a esta ventaja, se facilita el trabajo con módulos y el código se vuelve más fácil de probar y mantener14.
Autenticación y autorización de usuarios
Laravel cuenta con un sistema integrado para autenticar y autorizar usuarios. Esto ayuda a introducir seguridad en las aplicaciones web de forma sencilla.16
Este sistema maneja varias acciones como registro, inicio y cierre de sesión. Además, ofrece opciones para recuperar contraseñas olvidadas o verificar cuentas.16
En cuanto a la autorización, Laravel brinda control de acceso a recursos y funciones. Esto se basa en permisos y roles definidos para los usuarios. Se hace mediante políticas y middleware.16
Característica | Descripción |
---|---|
Contraseña mínima de 60 caracteres | La columna de contraseña en el modelo App\Models\User debe tener al menos 60 caracteres de longitud.17 |
Token de recuerdo nulable de 100 caracteres | La columna remember_token en la tabla de usuarios debe ser nulable y de tipo string con 100 caracteres.17 |
Paquetes de autenticación | Laravel ofrece varios paquetes relacionados con la autenticación, como Laravel Breeze, Laravel Jetstream y Laravel Fortify.17 |
Implementación de autenticación | Laravel Breeze facilita la implementación de características de autenticación de Laravel de manera simple.17 |
Autenticación de dos factores y verificación de email | Laravel Fortify introduce características avanzadas de autenticación, como la de dos factores y verificación de email.17 |
Kit de inicio con autenticación moderna | Laravel Jetstream es un kit de inicio que aprovecha los servicios de autenticación de Laravel Fortify.17 |
Autenticación de API | Laravel pone a disposición servicios de autenticación de API con herramientas como Passport y Sanctum.17 |
Tipos de tokens OAuth2 | Passport, parte de Laravel, amplía las opciones de autenticación OAuth2 con diferentes tipos de tokens.17 |
Autenticación simplificada | Para una autenticación más fácil, Laravel incluye Sanctum, una opción sencilla para web y API.17 |
Pruebas y depuración en Laravel
Laravel hace más fácil hacer pruebas y depuración en las aplicaciones web.3
Para pruebas, ofrece soporte para pruebas unitarias y funcionales. Así, los desarrolladores pueden probar si los modelos, controladores y rutas funcionan bien. Laravel usa herramientas como PHPUnit para esto.14
Para depuración, tiene el componente de depuración web. Este permite ver solicitudes HTTP, consultas a la base de datos, errores y más. Es útil al desarrollar y correr la aplicación.14
Enlaces de origen
- https://www.hostinger.es/tutoriales/como-crear-un-proyecto-en-laravel
- https://desarrolloweb.com/home/laravel
- https://kinsta.com/es/blog/desarrollador-de-laravel/
- https://kinsta.com/es/base-de-conocimiento/instalar-laravel/
- https://revistacompleta.com/guia-para-crear-aplicacion-laravel/
- https://medium.com/@ljcl79/conociendo-a-laravel-9-un-framework-poderoso-576ede7f6e6c
- https://laravel-docs.com/es/docs/10.x/installation
- https://codersfree.com/posts/enrutamiento-en-laravel-guia-completa-para-principiantes
- https://kinsta.com/es/blog/rutas-laravel/
- https://styde.net/controladores-en-laravel/
- http://www.jesusclaramontegascon.com/vernoticias/programar-con-laravel8-desdecero
- https://styde.net/aprende-a-usar-eloquent-el-orm-de-laravel/
- https://dev.to/johantovar/aprende-eloquent-con-ejemplos-2ld7
- https://kinsta.com/es/blog/laravel-blade/
- https://styde.net/blade-el-sistema-de-plantillas-de-laravel/
- https://kinsta.com/es/blog/autenticacion-laravel/
- https://documentacionlaravel.com/docs/9.x/authentication