Lección 44 de 45 15 min de lectura

Ecosistema Laravel

Laravel no es solo un framework: es un ecosistema completo de herramientas, servicios y paquetes oficiales que cubren desde el desarrollo local hasta la producción a escala.

El ecosistema de Laravel

Una de las mayores fortalezas de Laravel es su ecosistema. Además del framework core, el equipo de Laravel mantiene decenas de paquetes y servicios que resuelven problemas comunes en el desarrollo web.

Estos productos se dividen en tres categorías: paquetes gratuitos que puedes instalar con Composer, servicios de pago para hosting y administración, y herramientas de desarrollo que mejoran tu productividad.

Starter Kits

Los starter kits te dan un punto de partida con autenticación, diseño y estructura ya configurados.

Laravel Breeze

Breeze es el starter kit minimalista que vimos en la lección 29. Incluye login, registro, recuperación de contraseña y verificación de email con código simple y fácil de entender.

bash
composer require laravel/breeze --dev
php artisan breeze:install

Breeze ofrece tres opciones de frontend: Blade con Alpine.js, Livewire, o Inertia con Vue/React.

Laravel Jetstream

Jetstream es la opción más completa. Además de autenticación, incluye gestión de equipos, autenticación de dos factores, gestión de sesiones y tokens de API.

bash
composer require laravel/jetstream
php artisan jetstream:install livewire

Usa Jetstream cuando necesites funcionalidades empresariales como equipos o 2FA desde el inicio.

Herramientas de frontend

Livewire

Ya vimos Livewire en la lección anterior. Te permite crear interfaces reactivas usando PHP y Blade, sin escribir JavaScript.

Inertia.js

Inertia es el puente entre Laravel y frameworks JavaScript como Vue, React o Svelte. Escribes controladores Laravel normales y renderizas componentes JavaScript en lugar de vistas Blade.

php
<?php

// En lugar de return view('users.index')
return Inertia::render('Users/Index', [
    'users' => User::all(),
]);

Inertia combina lo mejor de ambos mundos: la productividad de Laravel con la experiencia de usuario de una SPA, sin duplicar lógica ni crear una API separada.

Paquetes de autenticación

Sanctum

Laravel Sanctum proporciona autenticación ligera para SPAs, aplicaciones móviles y APIs simples basadas en tokens.

php
<?php

// Crear un token para el usuario
$token = $user->createToken('mobile-app')->plainTextToken;

// En las rutas API
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Passport

Laravel Passport implementa OAuth2 completo. Úsalo cuando necesites autenticación entre aplicaciones de terceros, como cuando creas una API pública que otros desarrolladores consumirán.

Socialite

Socialite simplifica la autenticación OAuth con proveedores como Google, Facebook, Twitter, GitHub y muchos más.

php
<?php

// Redirigir a Google
return Socialite::driver('google')->redirect();

// Callback después de autenticar
$googleUser = Socialite::driver('google')->user();
$user = User::firstOrCreate(
    ['email' => $googleUser->email],
    ['name' => $googleUser->name]
);

Pagos y suscripciones

Cashier

Laravel Cashier maneja suscripciones y pagos con Stripe o Paddle. Gestiona planes, períodos de prueba, cupones, facturas y mucho más.

php
<?php

// Crear una suscripción
$user->newSubscription('default', 'price_monthly')
    ->trialDays(14)
    ->create($paymentMethod);

// Verificar si está suscrito
if ($user->subscribed('default')) {
    // Tiene acceso premium
}

Búsqueda y utilidades

Scout

Laravel Scout añade búsqueda full-text a tus modelos Eloquent. Soporta drivers como Algolia, Meilisearch, Typesense o incluso la base de datos.

php
<?php

use Laravel\Scout\Searchable;

class Article extends Model
{
    use Searchable;
}

// Buscar artículos
$articles = Article::search('laravel tutorial')->get();

Pennant

Laravel Pennant gestiona feature flags (banderas de características). Activa o desactiva funcionalidades para usuarios específicos sin hacer deploy.

php
<?php

use Laravel\Pennant\Feature;

if (Feature::active('new-dashboard')) {
    // Mostrar nuevo dashboard
}

Pint

Laravel Pint es un formateador de código PHP basado en PHP-CS-Fixer. Viene preinstalado en Laravel y mantiene tu código con un estilo consistente.

bash
# Formatear todo el proyecto
./vendor/bin/pint

# Ver cambios sin aplicarlos
./vendor/bin/pint --test

Rendimiento y tiempo real

Octane

Laravel Octane potencia tu aplicación con servidores de alto rendimiento como Swoole o RoadRunner. Mantiene la aplicación en memoria entre peticiones, reduciendo drásticamente los tiempos de respuesta.

bash
composer require laravel/octane
php artisan octane:install
php artisan octane:start

Reverb

Laravel Reverb es el servidor WebSocket oficial de Laravel. Permite comunicación en tiempo real entre el servidor y los clientes, ideal para chats, notificaciones en vivo o actualizaciones instantáneas.

bash
composer require laravel/reverb
php artisan reverb:install
php artisan reverb:start

Echo

Laravel Echo es la librería JavaScript que escucha eventos WebSocket. Funciona con Reverb, Pusher o cualquier servidor compatible.

javascript
Echo.channel('orders')
    .listen('OrderShipped', (event) => {
        console.log('Pedido enviado:', event.order.id);
    });

Debugging y monitoreo

Telescope

Laravel Telescope es el debugger visual de Laravel. Registra peticiones, queries, excepciones, jobs, correos, notificaciones y mucho más. Esencial durante el desarrollo.

bash
composer require laravel/telescope --dev
php artisan telescope:install
php artisan migrate

Accede a Telescope en /telescope para ver todo lo que ocurre en tu aplicación.

Horizon

Laravel Horizon proporciona un dashboard para monitorear tus colas Redis. Visualiza jobs, tiempos de espera, fallos y métricas en tiempo real.

bash
composer require laravel/horizon
php artisan horizon:install
php artisan horizon

Pulse

Laravel Pulse muestra métricas de rendimiento de tu aplicación en producción: tiempos de respuesta, queries lentas, excepciones frecuentes y uso de recursos.

bash
composer require laravel/pulse
php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"
php artisan migrate

Nightwatch

Laravel Nightwatch es el servicio de monitoreo en la nube de Laravel. Centraliza logs, métricas, alertas y trazas de errores de todas tus aplicaciones en un dashboard unificado. Es la opción gestionada cuando no quieres configurar tu propia infraestructura de observabilidad.

Testing

Pest

Pest es el framework de testing moderno para PHP, creado por un miembro del equipo Laravel. Ofrece una sintaxis más limpia y expresiva que PHPUnit tradicional.

php
<?php

test('users can view posts', function () {
    $post = Post::factory()->create();

    $this->get("/posts/{$post->id}")
        ->assertOk()
        ->assertSee($post->title);
});

Dusk

Laravel Dusk realiza tests de navegador automatizados. Simula interacciones reales del usuario como clics, escritura y navegación.

php
<?php

public function testLogin(): void
{
    $this->browse(function (Browser $browser) {
        $browser->visit('/login')
            ->type('email', 'user@example.com')
            ->type('password', 'secret')
            ->press('Login')
            ->assertPathIs('/dashboard');
    });
}

Servicios de hosting

Laravel Cloud

Laravel Cloud es la plataforma de hosting totalmente gestionada de Laravel. Deploys automáticos, escalado, bases de datos, colas y más, todo integrado y optimizado para Laravel.

Es la opción más sencilla: conectas tu repositorio y Laravel Cloud se encarga de todo el resto con precios de pago por uso.

Forge

Laravel Forge provisiona y gestiona servidores en proveedores como DigitalOcean, AWS, Linode o Vultr. Configura PHP, Nginx, SSL, bases de datos y deploys automáticos.

Forge te da más control que Cloud: eliges tu proveedor de VPS y Forge configura todo automáticamente. Desde $12/mes puedes gestionar servidores ilimitados.

Vapor

Laravel Vapor despliega aplicaciones Laravel en AWS Lambda (serverless). Sin servidores que gestionar, escala automáticamente y solo pagas por lo que usas.

Vapor es ideal para aplicaciones con tráfico variable o impredecible.

Desarrollo local

Sail

Laravel Sail es el entorno de desarrollo Docker oficial. Ya lo usamos en la lección 2. Proporciona PHP, MySQL, Redis y más servicios con un solo comando.

Herd

Laravel Herd es un entorno de desarrollo nativo para macOS y Windows. Sin Docker, sin configuración: instala y funciona con PHP, Nginx y bases de datos integradas.

Administración

Nova

Laravel Nova genera paneles de administración elegantes y funcionales. Define recursos basados en tus modelos Eloquent y Nova crea automáticamente CRUDs, filtros, métricas y acciones.

php
<?php

class User extends Resource
{
    public static string $model = \App\Models\User::class;

    public function fields(Request $request): array
    {
        return [
            ID::make()->sortable(),
            Text::make('Name')->sortable(),
            Text::make('Email')->sortable(),
        ];
    }
}

Nova es de pago ($99 por proyecto) pero ahorra semanas de desarrollo en paneles admin.

Cuándo usar cada herramienta

Necesidad Herramienta
Autenticación simple Breeze + Sanctum
Autenticación con equipos/2FA Jetstream
Login con redes sociales Socialite
Interfaces reactivas sin JS Livewire
SPA con Vue/React Inertia
Pagos y suscripciones Cashier
Búsqueda full-text Scout
WebSockets/tiempo real Reverb + Echo
Alto rendimiento Octane
Debug en desarrollo Telescope
Monitoreo en producción Pulse o Nightwatch
Monitor de colas Redis Horizon
Panel de administración Nova
Hosting gestionado Cloud o Forge
Serverless Vapor

Ejercicios

Ejercicio 1: Investigar Inertia

Visita la documentación de Inertia.js y responde: ¿qué ventaja tiene sobre crear una API REST separada para tu frontend Vue/React? ¿Cómo comparte datos entre el servidor y el cliente?

Ver solución

Ventajas sobre API REST:

  • No necesitas duplicar lógica de validación ni autorización
  • No hay que versionar ni documentar una API
  • Compartes tipos y estructuras directamente
  • Los datos se pasan como props al componente

Compartir datos:

Inertia serializa los datos del controlador como JSON y los pasa al componente JavaScript como props. El componente los recibe igual que recibiría props de su padre.

Ejercicio 2: Planificar herramientas

Imagina que vas a crear una plataforma de cursos online con pagos, búsqueda de cursos y chat en tiempo real. ¿Qué herramientas del ecosistema Laravel usarías para cada funcionalidad?

Ver solución

Plataforma de cursos online:

  • Autenticación: Breeze o Jetstream (si necesitas equipos para instructores)
  • Pagos y suscripciones: Cashier con Stripe
  • Búsqueda de cursos: Scout con Meilisearch o Algolia
  • Chat en tiempo real: Reverb + Echo para WebSockets
  • Panel admin: Nova para gestionar cursos y usuarios
  • Emails transaccionales: Sistema de notificaciones de Laravel
  • Desarrollo: Sail + Telescope para debug
  • Producción: Forge o Cloud + Pulse para monitoreo

Ejercicio 3: Comparar Telescope y Pulse

Ambas herramientas muestran información sobre tu aplicación. Investiga y explica: ¿cuándo usarías Telescope y cuándo Pulse? ¿Pueden usarse juntas?

Ver solución

Telescope:

  • Diseñado para desarrollo local
  • Registra todo: cada request, query, job, email...
  • Información muy detallada para debugging
  • Alto consumo de recursos, no recomendado en producción

Pulse:

  • Diseñado para producción
  • Muestra métricas agregadas y tendencias
  • Bajo impacto en rendimiento
  • Identifica patrones: rutas lentas, queries frecuentes

Sí, pueden usarse juntas: Telescope en desarrollo para debug detallado, Pulse en producción para monitoreo general.

Resumen

El ecosistema Laravel es una de sus mayores fortalezas. En lugar de buscar librerías de terceros para cada necesidad, tienes paquetes oficiales mantenidos por el mismo equipo, con documentación excelente e integración perfecta.

  • Starter kits: Breeze (simple) y Jetstream (completo)
  • Frontend: Livewire (PHP) e Inertia (Vue/React)
  • Auth: Sanctum, Passport y Socialite
  • Pagos: Cashier para Stripe/Paddle
  • Rendimiento: Octane, Reverb, Scout
  • Debug: Telescope (dev) y Pulse (prod)
  • Hosting: Cloud, Forge y Vapor
  • Admin: Nova para paneles profesionales

No necesitas usar todas estas herramientas en cada proyecto. Empieza simple y añade lo que necesites. Lo importante es saber que existen y cuándo pueden ayudarte.

¿Quieres dominar Laravel?

Aprende a crear aplicaciones completas con Laravel, incluyendo Livewire, APIs, testing y proyectos reales paso a paso.

Ver cursos premium