PHP · Laravel · Backend · Framework

Laravel: qué es, cómo funciona y cómo aprenderlo

Laravel es un framework de PHP para construir aplicaciones web, APIs y sistemas backend utilizando una estructura más organizada que un proyecto formado únicamente por archivos PHP sueltos. Incluye herramientas para routing, controladores, acceso a bases de datos, validación, middleware, plantillas, colas, caché, testing y otras tareas habituales del desarrollo web.

Routing · Controllers Blade · Eloquent APIs · Testing · Queues
Respuesta rápida

¿Qué es Laravel?

Laravel es un framework de desarrollo web construido con PHP. Proporciona una estructura y un conjunto de herramientas para crear aplicaciones sin tener que resolver desde cero problemas comunes como routing, acceso a bases de datos, validación, sesiones, middleware o colas.

Laravel no reemplaza PHP. Está construido sobre PHP, por lo que comprender el lenguaje, programación orientada a objetos, Composer, HTTP y bases de datos facilita enormemente aprenderlo.

Puede utilizarse para crear paneles administrativos, SaaS, ecommerce, APIs, sistemas empresariales, aplicaciones internas y prácticamente cualquier backend web que encaje con su arquitectura.

Publicidad
Ecosistema Laravel

Laravel reúne muchas tareas habituales del backend dentro de un mismo framework

01

Routing

Relaciona URLs y métodos HTTP con lógica.

02

Controllers

Organizan las entradas HTTP.

03

Blade

Sistema de plantillas para HTML.

04

Eloquent

ORM para trabajar con datos mediante modelos.

05

Middleware

Filtra y modifica solicitudes.

06

Artisan

Herramientas de línea de comandos.

Publicidad
Antes de Laravel

Laravel se aprende mejor cuando ya comprendes PHP

Es posible seguir un tutorial de Laravel sin dominar PHP, pero rápidamente aparecerán conceptos que el framework da por sentados.

Por ejemplo, una ruta puede utilizar una función anónima, un controller es una clase, un servicio puede recibir dependencias por constructor y los paquetes se administran mediante Composer.

Laravel no elimina los fundamentos

Al contrario: construye encima de ellos.

Antes de profundizar, conviene entender:

01

Variables y funciones.

02

Arrays.

03

Clases y objetos.

04

Namespaces.

05

Composer.

06

HTTP y bases de datos.

Fundamentos

Si PHP todavía te resulta confuso, fortalece primero el lenguaje

Funciones, formularios, POO, MySQL y Composer.

Ver guía completa de PHP →
Framework

¿Qué problema resuelve un framework como Laravel?

Con PHP puro puedes construir prácticamente todos los componentes necesarios para una aplicación.

El problema aparece cuando cada proyecto necesita volver a decidir:

01

Cómo definir rutas.

02

Cómo organizar controllers.

03

Cómo validar solicitudes.

04

Cómo estructurar acceso a datos.

05

Cómo gestionar sesiones.

06

Cómo ejecutar tareas en background.

Laravel ofrece convenciones y herramientas para muchas de estas tareas.

Un framework no elimina la complejidad: la organiza.

Sigue siendo necesario comprender qué ocurre debajo de cada abstracción.

Crear un proyecto

Composer forma parte del flujo natural de Laravel

Una forma de crear un proyecto Laravel es utilizar Composer.

Terminal Composer
composer create-project laravel/laravel mi-aplicacion

Después puedes entrar al proyecto:

Terminal Proyecto
cd mi-aplicacion

Y durante desarrollo puedes utilizar las herramientas proporcionadas por el framework y tu entorno local.

Composer

Laravel depende fuertemente del ecosistema de Composer

Paquetes, autoload, namespaces y dependencias.

Aprender Composer →
Publicidad
Estructura

Laravel organiza la aplicación en directorios con responsabilidades diferentes

Cuando abres un proyecto Laravel, ya no encuentras solamente un archivo index.php con toda la aplicación.

Aparecen directorios dedicados a componentes diferentes.

Estructura conceptual Laravel
app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
tests/
vendor/

app/

Contiene buena parte del código de la aplicación.

routes/

Define cómo las solicitudes se relacionan con la aplicación.

database/

Puede contener migraciones, seeders y otros elementos relacionados con datos.

resources/

Incluye recursos utilizados para la presentación y otros assets del proyecto.

public/

Funciona como punto público de entrada de la aplicación.

Routing

Las rutas definen cómo responde Laravel a una URL

Una ruta sencilla puede responder directamente.

Ruta PHP
<?php

use Illuminate\Support\Facades\Route;

Route::get('/hola', function () {
    return 'Hola desde Laravel';
});

Cuando un usuario realiza:

HTTP GET
GET /hola

Laravel encuentra la ruta correspondiente y ejecuta su lógica.

Las rutas también pueden tener parámetros

Parámetro Laravel
<?php

Route::get(
    '/productos/{id}',
    function (int $id) {
        return 'Producto: ' . $id;
    }
);

Pero en aplicaciones mayores normalmente la ruta delega el trabajo a un controller.

Controllers

Un controller ayuda a sacar lógica HTTP de los archivos de rutas

En lugar de colocar toda la aplicación dentro de closures, puedes dirigir la solicitud a una clase.

Ruta Laravel
<?php

use App\Http\Controllers\ProductoController;
use Illuminate\Support\Facades\Route;

Route::get(
    '/productos',
    [ProductoController::class, 'index']
);

El controller:

ProductoController.php PHP
<?php

namespace App\Http\Controllers;

final class ProductoController extends Controller
{
    public function index()
    {
        return 'Listado de productos';
    }
}

El controller no debería transformarse en una clase gigantesca

Su función suele relacionarse principalmente con la capa HTTP.

Las reglas complejas pueden delegarse a otros servicios o componentes.

Publicidad
MVC

Laravel suele asociarse con MVC, pero una aplicación real puede tener muchas más capas

MVC significa:

M

Model: representa datos y comportamiento relacionado.

V

View: representa la interfaz.

C

Controller: coordina solicitudes y respuestas.

Este modelo resulta útil para comenzar, pero una aplicación puede incorporar además:

servicios, jobs, policies, listeners, repositories, actions u otras abstracciones.

No intentes meter toda la lógica de negocio dentro de controllers o models solamente porque conoces MVC.

La arquitectura debería adaptarse al tamaño y complejidad del proyecto.

Blade

Blade permite construir vistas HTML utilizando un sistema de plantillas

Si Laravel también renderiza la interfaz, puedes utilizar Blade.

productos.blade.php Blade
<h1>Productos</h1>

@foreach ($productos as $producto)

    <article>
        <h2>{{ $producto->nombre }}</h2>
        <p>{{ $producto->precio }}</p>
    </article>

@endforeach

Blade permite layouts, componentes, condicionales y otras herramientas para generar interfaces.

No estás obligado a utilizar Laravel como frontend

También puedes construir una API y consumirla desde una aplicación JavaScript u otro cliente.

Bases de datos

Laravel proporciona varias herramientas para trabajar con bases de datos

El framework abstrae parte del trabajo que harías manualmente con PDO.

Pero comprender SQL, relaciones e índices sigue siendo muy importante.

Query Builder

Permite construir consultas mediante una API de PHP.

Eloquent

Permite representar tablas y relaciones mediante modelos.

Migraciones

Permiten versionar cambios en la estructura de la base de datos.

Base importante

No uses Eloquent como excusa para no aprender SQL

JOIN, índices, transacciones y modelado siguen importando.

PHP con MySQL →
Eloquent ORM

Eloquent representa registros mediante modelos PHP

Supongamos que tenemos una tabla de productos.

Podemos crear un modelo:

Producto.php Laravel
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

final class Producto extends Model
{
    protected $fillable = [
        'nombre',
        'precio'
    ];
}

Y consultar:

Consulta Eloquent
$productos = Producto::query()
    ->orderByDesc('id')
    ->get();

Esto evita escribir SQL directamente para muchas operaciones comunes.

Pero el SQL sigue existiendo debajo

Una consulta Eloquent mal diseñada también puede generar problemas de rendimiento.

Relaciones

Eloquent permite expresar relaciones entre modelos

Un usuario puede tener muchos pedidos.

Un pedido puede pertenecer a un usuario.

Usuario.php Eloquent
<?php

public function pedidos()
{
    return $this->hasMany(Pedido::class);
}

Y en Pedido:

Pedido.php Eloquent
<?php

public function usuario()
{
    return $this->belongsTo(Usuario::class);
}

Estas relaciones facilitan trabajar con datos conectados, pero debes comprender cómo se traducen a consultas.

Publicidad
Migraciones

Las migraciones permiten versionar la estructura de la base de datos

Sin migraciones, cambiar una base de datos puede depender de instrucciones manuales.

Laravel permite describir esos cambios mediante código.

Migración Laravel
<?php

Schema::create('productos', function (Blueprint $table) {

    $table->id();

    $table->string('nombre');

    $table->decimal(
        'precio',
        12,
        2
    );

    $table->timestamps();
});

Esto permite que el cambio forme parte del historial del proyecto.

El equipo puede aplicar el mismo cambio

En lugar de compartir solamente instrucciones SQL por mensajes o documentos.

Artisan

Artisan automatiza tareas habituales de desarrollo

Laravel incluye una interfaz de línea de comandos.

Puedes utilizarla para generar componentes, ejecutar migraciones y realizar otras operaciones.

Controller Artisan
php artisan make:controller ProductoController
Model Artisan
php artisan make:model Producto
Migraciones Artisan
php artisan migrate
Artisan genera estructura, no arquitectura por ti.

Crear automáticamente una clase no garantiza que tenga una responsabilidad correcta.

Validación

Laravel incluye herramientas para validar solicitudes antes de utilizar sus datos

Imagina un formulario para crear productos.

Validación Laravel
<?php

$datos = $request->validate([
    'nombre' => [
        'required',
        'string',
        'max:150'
    ],
    'precio' => [
        'required',
        'numeric',
        'min:0'
    ]
]);

Ahora el resto de la lógica puede trabajar con un conjunto de datos que ya pasó determinadas reglas.

Validación no reemplaza reglas de negocio

Saber que un monto es numérico no significa automáticamente que una determinada operación esté permitida.

Publicidad
Flujo HTTP

Comprender cómo atraviesa una solicitud la aplicación es más útil que memorizar comandos

Flujo conceptual Laravel
Navegador / Cliente
        ↓
Solicitud HTTP
        ↓
Laravel
        ↓
Middleware
        ↓
Route
        ↓
Controller
        ↓
Servicio / lógica
        ↓
Modelo / Base de datos
        ↓
Response
        ↓
Cliente

No todas las aplicaciones tendrán exactamente estas capas.

Pero entender el recorrido te ayuda enormemente cuando necesitas depurar un problema.

Middleware

Middleware permite ejecutar lógica alrededor de una solicitud HTTP

Antes de llegar a un controller puede ser necesario comprobar:

01

Si existe una sesión válida.

02

Si el usuario está autenticado.

03

Si una solicitud cumple determinada condición.

04

Si se necesita modificar la respuesta.

Esta idea ayuda a evitar repetir la misma lógica en múltiples controllers.

Middleware no debería convertirse en un lugar donde esconder toda la lógica del negocio.

Utilízalo para responsabilidades relacionadas con el ciclo de la solicitud.

Service Container

Laravel puede resolver dependencias automáticamente mediante su contenedor

En PHP ya vimos que una clase puede recibir dependencias en el constructor.

Servicio PHP
<?php

final class CrearPedido
{
    public function __construct(
        private CalculadorPrecio $calculador
    ) {}
}

Laravel puede encargarse de construir determinados objetos y resolver sus dependencias.

Esto se relaciona directamente con POO

Interfaces, composición e inyección de dependencias dejan de ser conceptos teóricos y aparecen constantemente dentro del framework.

POO

Laravel se entiende mucho mejor cuando ya sabes interfaces e inyección de dependencias

Clases, composición y contratos.

Aprender POO en PHP →
Autenticación y autorización

Laravel puede ayudarte con autenticación, pero debes distinguirla de autorización

Autenticación responde: ¿quién es este usuario?

Autorización responde: ¿qué puede hacer?

Una persona puede iniciar sesión correctamente y aun así no tener permiso para:

01

Editar otro usuario.

02

Eliminar un pedido.

03

Acceder a administración.

04

Consultar información privada.

Laravel dispone de mecanismos para organizar este tipo de permisos, pero la aplicación sigue necesitando definir correctamente las reglas.

APIs

Laravel puede utilizarse como backend de una API REST

El framework puede recibir solicitudes desde:

01

Frontend JavaScript.

02

Aplicaciones móviles.

03

Sistemas empresariales.

04

Servicios externos.

Y devolver JSON en lugar de HTML.

Response Laravel
<?php

return response()->json([
    'data' => $productos
]);

Laravel no reemplaza HTTP

Sigue siendo necesario comprender GET, POST, PATCH, DELETE, códigos de estado, autenticación y CORS.

Antes del framework

Aprende cómo funciona una API en PHP para comprender mejor lo que Laravel abstrae

HTTP, JSON, PDO, autenticación y errores.

Crear API REST con PHP →
Publicidad
Colas y jobs

Una petición web no debería esperar indefinidamente por tareas pesadas

Algunas operaciones pueden ejecutarse después de responder al usuario.

Por ejemplo:

01

Enviar emails.

02

Procesar archivos grandes.

03

Generar reportes.

04

Sincronizar sistemas externos.

05

Procesar tareas de IA.

Laravel dispone de herramientas para representar y ejecutar jobs mediante colas.

Esto mejora la experiencia del usuario

La aplicación puede responder rápidamente mientras el trabajo continúa fuera del ciclo principal de la petición.

Eventos

Los eventos permiten reaccionar a algo que ocurrió sin acoplar todo a una sola clase

Imagina que un pedido fue pagado.

A partir de ese hecho podrían ocurrir varias acciones:

01

Enviar comprobante.

02

Actualizar inventario.

03

Notificar a logística.

04

Registrar analytics.

Un diseño orientado a eventos puede separar estas reacciones del proceso principal.

No necesitas convertir cada acción de Laravel en un evento.

Utilízalos cuando ayuden a reducir acoplamiento y representar eventos reales del sistema.

Caché

Laravel incluye abstracciones para almacenar temporalmente información costosa de obtener

No todo debería consultarse o calcularse nuevamente en cada petición.

El caché puede ser útil para:

01

Consultas costosas.

02

Resultados externos.

03

Configuraciones.

04

Información que cambia poco.

Pero también necesitas decidir cuándo invalidar la información almacenada.

Caché incorrecto puede devolver datos antiguos aunque la aplicación sea técnicamente rápida.

Rendimiento y consistencia deben evaluarse juntos.

Publicidad
Seguridad

Laravel ayuda con seguridad, pero el framework no puede decidir correctamente por ti

El framework incorpora mecanismos que ayudan frente a distintos problemas comunes.

Pero tú sigues siendo responsable de decisiones como:

01

Qué usuario puede ver un recurso.

02

Qué campos pueden modificarse.

03

Qué información se expone.

04

Cómo almacenar secretos.

05

Qué datos externos son confiables.

El ORM no reemplaza autorización

Que una consulta pueda recuperar un registro no significa que el usuario deba poder verlo.

Validación no reemplaza permisos

Un dato puede tener formato correcto y aun así representar una operación no permitida.

Testing

Laravel facilita probar aplicaciones a distintos niveles

Un proyecto puede incluir pruebas para:

01

Reglas de negocio.

02

Rutas HTTP.

03

Autenticación.

04

Permisos.

05

Persistencia.

Un test no demuestra que todo el sistema sea perfecto

Pero sí puede documentar comportamiento esperado y detectar regresiones.

Cuanto más importante sea una regla, más útil resulta poder verificarla automáticamente.
Rendimiento

Uno de los errores típicos al empezar con un ORM es olvidar cuántas consultas realmente se ejecutan

Un código puede parecer simple desde PHP y provocar muchas consultas SQL.

Por ejemplo, cargar cien pedidos y después consultar el usuario de cada uno individualmente puede producir un número innecesario de consultas.

Este tipo de problema suele conocerse como N+1

Los ORM ofrecen mecanismos para cargar relaciones de forma más eficiente.

Una sintaxis elegante no garantiza una consulta eficiente.

Aprende a inspeccionar qué SQL está generando tu aplicación.

Arquitectura

Laravel no obliga a colocar toda la lógica dentro de controllers y modelos

Supongamos que crear un pedido requiere:

01

Validar stock.

02

Calcular total.

03

Guardar pedido.

04

Reservar inventario.

05

Generar evento.

Esa operación puede representarse mediante un servicio o caso de uso propio.

CrearPedido.php PHP
<?php

final class CrearPedido
{
    public function __construct(
        private Inventario $inventario,
        private Pedidos $pedidos
    ) {}

    public function ejecutar(
        DatosPedido $datos
    ): Pedido {

        // Reglas del proceso.

        return $pedido;
    }
}

De esta manera el controller puede concentrarse en HTTP y la lógica importante queda separada.

Integraciones

Laravel también puede consumir APIs y servicios externos

Una aplicación puede conectarse con:

01

Pasarelas de pago.

02

Servicios de email.

03

CRM.

04

ERP.

05

APIs de inteligencia artificial.

Aquí vuelven a ser importantes conceptos que ya aprendimos en PHP: HTTP, JSON, errores, timeouts, autenticación y validación.

PHP + IA

Laravel también puede convertirse en backend de aplicaciones con inteligencia artificial

Usuarios, colas, datos, APIs y consumo.

PHP con inteligencia artificial →
Publicidad
Qué construir

Proyectos para aprender Laravel de verdad

Sistema de tareas

Usuarios, CRUD, relaciones, validación y permisos.

Sistema de reservas

Horarios, estados, usuarios, disponibilidad y notificaciones.

API de productos

Routing, controllers, recursos, autenticación y testing.

Panel administrativo

Roles, filtros, métricas, formularios y datos.

Mini SaaS

Usuarios, equipos, planes, límites y procesos en background.

El proyecto ideal para aprender Laravel es suficientemente grande como para necesitar estructura.

Si todo cabe cómodamente en dos archivos, muchas abstracciones del framework todavía no mostrarán su verdadero valor.

Laravel vs PHP puro

Laravel no sustituye PHP: es una forma estructurada de construir con PHP

Necesidad PHP puro Laravel
Script pequeño Muy directo Puede ser excesivo
Routing complejo Debes estructurarlo Integrado
ORM No incluido como framework Eloquent
Migraciones Debes implementarlas o añadir herramienta Integradas
Queues Debes diseñarlas Ecosistema integrado
Control absoluto Máximo Más convenciones
Aplicación grande Exige diseñar estructura Base organizada

Saber Laravel sin entender PHP puede hacerte dependiente de recetas.

Saber PHP y después Laravel te permite entender mejor qué está resolviendo cada herramienta.

Trabajo

¿Qué deberías saber además de Laravel para trabajar profesionalmente?

Aprender comandos de Artisan no es suficiente.

Un perfil profesional debería comprender progresivamente:

01

PHP y POO.

02

Composer.

03

SQL y bases de datos.

04

HTTP y APIs.

05

Git.

06

Testing.

07

Seguridad.

08

Debugging.

Perfil profesional

Laravel debería complementar tu perfil PHP, no reemplazar los fundamentos

Backend, SQL, APIs, Git y arquitectura.

Trabajar sabiendo PHP →
Laravel + IA

La IA puede acelerar Laravel, pero también puede generar código que parece correcto y no encaja con tu aplicación

Un asistente puede generar:

01

Routes.

02

Controllers.

03

Migraciones.

04

Models.

05

Tests.

Pero debes revisar:

autorización, consultas, relaciones, dependencias, versiones y arquitectura.

En frameworks, el código generado puede utilizar convenciones o APIs incompatibles con tu proyecto.

Comprueba documentación y ejecuta los tests antes de aceptar la implementación.

Ruta de aprendizaje

En qué orden aprender Laravel

1

PHP

Funciones, tipos y errores.

2

POO

Clases, interfaces y dependencias.

3

Composer

Paquetes y autoload.

4

Routing

URLs y HTTP.

5

Controllers

Coordina solicitudes.

6

Blade

Renderiza vistas.

7

SQL + Eloquent

Datos y relaciones.

8

Migrations

Versiona estructura.

9

Auth + Middleware

Usuarios y acceso.

10

Testing + APIs

Lleva el proyecto a nivel profesional.

Errores frecuentes

Qué evitar al aprender Laravel

Error Aprender Laravel sin entender PHP
PHP primero
Error Copiar comandos sin comprender el flujo HTTP
Comprende
Error No aprender SQL porque existe Eloquent
Aprende SQL
Error Controllers gigantes
Separa
Error Añadir servicios para absolutamente todo
Justifica
Error Ignorar N+1 y consultas generadas
Mide
Error Confundir validación con autorización
Separa
Error Instalar paquetes sin evaluar su necesidad
Evalúa
Conclusión

Laravel cobra sentido cuando tus aplicaciones PHP necesitan estructura y herramientas que puedas reutilizar

Aprende PHP antes de depender del framework.

Comprende routing y el ciclo de una solicitud.

Utiliza controllers para organizar la capa HTTP.

Aprende SQL aunque utilices Eloquent.

Utiliza migraciones para versionar cambios de datos.

Comprende middleware, autenticación y autorización.

Aprende colas, caché y eventos cuando el proyecto realmente los necesite.

Añade testing antes de depender únicamente de pruebas manuales.

Laravel no elimina la necesidad de saber PHP: hace que los fundamentos de PHP, POO, Composer, HTTP y SQL aparezcan juntos dentro de una arquitectura mucho más completa.

Ecosistema PHP

Bases que necesitas para dominar Laravel

Publicidad
Preguntas frecuentes

Preguntas frecuentes sobre Laravel

Laravel es un framework construido con PHP para desarrollar aplicaciones web, APIs y sistemas backend. Proporciona herramientas para routing, bases de datos, validación, middleware, plantillas, colas y testing.

Es muy recomendable. Laravel utiliza clases, interfaces, namespaces, Composer y otras características de PHP. Comprender primero los fundamentos evita depender únicamente de tutoriales y recetas.

Puede utilizarse para construir sistemas web, paneles administrativos, SaaS, APIs REST, aplicaciones empresariales, ecommerce e integraciones backend.

Eloquent es el ORM integrado en Laravel. Permite representar registros mediante modelos PHP y trabajar con consultas y relaciones utilizando una API orientada a objetos.

Las migraciones permiten describir mediante código cambios en la estructura de la base de datos. Esto facilita versionar y reproducir dichos cambios entre entornos.

Sí. Laravel puede recibir solicitudes HTTP, validar datos, autenticar usuarios, consultar bases de datos y devolver respuestas JSON para aplicaciones web, móviles u otros sistemas.

No. Laravel está construido sobre PHP. Utilizar Laravel significa programar en PHP utilizando una estructura, convenciones y herramientas proporcionadas por el framework.

Puede ser una excelente herramienta una vez que comprendes PHP, HTTP, SQL, POO y Composer. Laravel permite aplicar esos conocimientos dentro de aplicaciones estructuradas y proyectos más grandes.

Publicidad
De PHP a framework

Laravel empieza a tener sentido cuando ya puedes construir con PHP y quieres organizar aplicaciones más grandes

Aprende primero PHP, POO, Composer, SQL y HTTP. Después utiliza Laravel para integrar routing, Eloquent, migraciones, middleware, APIs, colas y testing dentro de una arquitectura coherente.

Fortalecer primero PHP →
Carrito de compra
Scroll al inicio