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

instalación Laravel

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

controladores Laravel

EstadísticaValor
Porcentaje de controladores utilizados para organizar solicitudes HTTP en Laravel100%10
Tasa de uso del comando Artisan para generar un nuevo controlador en Laravel100%10
Ratio de controladores con métodos públicos (acciones) vinculados a rutas100%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 __invokeN/A (No especificado)10
Porcentaje de errores de programación detectados durante las pruebasN/A (No especificado)10
Enfoque recomendado para la detección de errores durante las pruebas en LaravelCombinació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:

  1. Instalar y configurar el ambiente de Laravel
  2. Entender como Laravel organiza los archivos, usando el patrón MVC
  3. Crear rutas y controladores para gestionar la parte lógica del programa
  4. Usar modelos y Eloquent, el ORM, para trabajar con la base de datos
  5. Desarrollar vistas y utilizar Blade, el motor de templates, para la parte visual
  6. Añadir registro y control de usuarios a tu aplicación
  7. 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ísticaValor
Porcentaje de modelos creados usando el comando Artisan100%12
Campos definidos en el archivo de migración‘id’, ‘name’, ‘description’, ‘timestamps’12
Porcentaje de campos protegidos por defecto en los modelos Eloquent100%12
Longitud del array $fillable en el modelo2 (contiene ‘name’ y ‘description’)12
Longitud del array $guarded en el modelo1 (contiene ‘id’)12
Número de rutas definidas para el recurso de películas3 (index, store, destroy)12
Número de rutas para acciones específicas2 (destroy y search)12
Número de controladores generados usando Artisan1 (MovieController)12
Reducción de código al usar el método ‘create’ en lugar de asignar valores individualmenteReducido a la mitad12
Número de campos utilizados en la propiedad ‘fillable’ del modelo2 (name y description)12
Número de campos utilizados en la propiedad ‘guarded’ del modelo1 (id)12
Número de métodos diferentes utilizados para crear un nuevo registro de película con Eloquent2 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úsqueda3 (nombre de columna, ‘like’, término de búsqueda)12
Número de vistas creadas para las operaciones CRUD4 (new, list, update, index)12
Número de métodos utilizados para manejar la actualización de registros con Eloquent1 (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ísticaDescripción
Contraseña mínima de 60 caracteresLa 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 caracteresLa columna remember_token en la tabla de usuarios debe ser nulable y de tipo string con 100 caracteres.17
Paquetes de autenticaciónLaravel ofrece varios paquetes relacionados con la autenticación, como Laravel Breeze, Laravel Jetstream y Laravel Fortify.17
Implementación de autenticaciónLaravel 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 emailLaravel 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 modernaLaravel Jetstream es un kit de inicio que aprovecha los servicios de autenticación de Laravel Fortify.17
Autenticación de APILaravel pone a disposición servicios de autenticación de API con herramientas como Passport y Sanctum.17
Tipos de tokens OAuth2Passport, parte de Laravel, amplía las opciones de autenticación OAuth2 con diferentes tipos de tokens.17
Autenticación simplificadaPara 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

  1. https://www.hostinger.es/tutoriales/como-crear-un-proyecto-en-laravel
  2. https://desarrolloweb.com/home/laravel
  3. https://kinsta.com/es/blog/desarrollador-de-laravel/
  4. https://kinsta.com/es/base-de-conocimiento/instalar-laravel/
  5. https://revistacompleta.com/guia-para-crear-aplicacion-laravel/
  6. https://medium.com/@ljcl79/conociendo-a-laravel-9-un-framework-poderoso-576ede7f6e6c
  7. https://laravel-docs.com/es/docs/10.x/installation
  8. https://codersfree.com/posts/enrutamiento-en-laravel-guia-completa-para-principiantes
  9. https://kinsta.com/es/blog/rutas-laravel/
  10. https://styde.net/controladores-en-laravel/
  11. http://www.jesusclaramontegascon.com/vernoticias/programar-con-laravel8-desdecero
  12. https://styde.net/aprende-a-usar-eloquent-el-orm-de-laravel/
  13. https://dev.to/johantovar/aprende-eloquent-con-ejemplos-2ld7
  14. https://kinsta.com/es/blog/laravel-blade/
  15. https://styde.net/blade-el-sistema-de-plantillas-de-laravel/
  16. https://kinsta.com/es/blog/autenticacion-laravel/
  17. https://documentacionlaravel.com/docs/9.x/authentication

Deja un comentario