Framework PHP para desarrolladores web

Laravel es un framework web para construir aplicaciones web con una sintaxis expresiva y elegante. Hemos sentado las bases, liberándote de preocupaciones triviales y permitiéndote ser creativo.

Escribe código por placer.

Laravel valora la belleza. Amamos el código limpio tanto como tú. La sintaxis simple y elegante proporciona una funcionalidad asombrosa al alcance de tu mano. Cada característica ha sido cuidadosamente diseñada para ofrecer una experiencia de desarrollo maravillosa.

Empezar a aprender

Todo lo que necesitas para ser asombroso.

Out of the box, Laravel ofrece soluciones elegantes para funciones comunes necesarias en todas las aplicaciones web modernas. Es hora de comenzar a construir aplicaciones asombrosas y dejar de perder tiempo buscando paquetes e inventando la rueda.

Autenticación

La autenticación de usuarios es tan simple como agregar middleware de autenticación a la definición de rutas de Laravel:

Route::get('/profile', ProfileController::class)
->middleware('auth');

Después de autenticar al usuario, puedes acceder al usuario autenticado a través del facade Auth:

use Illuminate\Support\Facades\Auth;
 
// Obtener el usuario autenticado actual...
$user = Auth::user();

Por supuesto, puedes definir tu propio middleware de autenticación para personalizar el proceso de autenticación.

Para obtener más información sobre las funciones de autenticación de Laravel, consulta la documentación de autenticación.

Autorización

A menudo necesitarás verificar si un usuario está autorizado para realizar una acción específica. Las políticas de modelos de Laravel hacen que esta tarea sea fácil:

php artisan make:policy UserPolicy

Una vez que hayas definido tus reglas de autorización en la clase de política generada, puedes permitir la solicitud del usuario en los métodos de tu controlador:

public function update(Request $request, Invoice $invoice)
{
Gate::authorize('update', $invoice);
 
$invoice->update(/* ... */);
}

Aprender más

Eloquent ORM

¿Te preocupa trabajar con bases de datos? No deberías. Eloquent ORM de Laravel facilita la interacción con los datos de tu aplicación, y los modelos, migraciones y relaciones se pueden crear rápidamente:

php artisan make:model Invoice --migration

Una vez que hayas definido la estructura de tu modelo y sus relaciones, puedes interactuar con la base de datos utilizando la sintaxis poderosa y expresiva de Eloquent:

// Crear un modelo relacionado...
$user->invoices()->create(['amount' => 100]);
 
// Actualizar un modelo...
$invoice->update(['amount' => 200]);
 
// Obtener modelos...
$invoices = Invoice::unpaid()->where('amount', '>=', 100)->get();
 
// API rico para interactuar con modelos...
$invoices->each->pay();

Aprender más

Migraciones de base de datos

Las migraciones son como un sistema de control de versiones para tu base de datos, permitiendo a tu equipo definir y compartir el esquema de la base de datos de tu aplicación:

public function up(): void
{
Schema::create('flights', function (Blueprint $table) {
$table->uuid()->primary();
$table->foreignUuid('airline_id')->constrained();
$table->string('name');
$table->timestamps();
});
}

Aprender más

Validación

Laravel cuenta con más de 90 reglas de validación integradas, y utilizando Laravel Precognition, puedes proporcionar validación dinámica en tu frontend:

public function update(Request $request)
{
$validated = $request->validate([
'email' => 'required|email|unique:users',
'password' => Password::required()->min(8)->uncompromised(),
]);
 
$request->user()->update($validated);
}

Aprender más

Notificaciones y correo

Utiliza Laravel para enviar rápidamente notificaciones coloridas a los usuarios por correo electrónico, Slack, SMS, dentro de la aplicación y mucho más:

php artisan make:notification InvoicePaid

Una vez que hayas creado una notificación, puedes enviar fácilmente un mensaje a uno de los usuarios de tu aplicación:

$user->notify(new InvoicePaid($invoice));

Aprender más

Almacenamiento de archivos

Laravel proporciona una capa confiable de abstracción del sistema de archivos, ofreciendo una API única para interactuar con sistemas de archivos locales y sistemas de archivos en la nube, como Amazon S3:

$path = $request->file('avatar')->store('s3');

Laravel proporciona una capa confiable de abstracción del sistema de archivos, ofreciendo una API única para interactuar con sistemas de archivos locales y sistemas de archivos en la nube, como Amazon S3:

$content = Storage::get('photo.jpg');
 
Storage::put('photo.jpg', $content);

Aprender más

Colas de trabajos

Laravel te permite enviar tareas lentas a una cola en segundo plano, haciendo que tus solicitudes web sean rápidas:

$podcast = Podcast::create(/* ... */);
 
ProcessPodcast::dispatch($podcast)->onQueue('podcasts');

Puedes ejecutar tantas colas de trabajo como necesites para manejar tu carga:

php artisan queue:work redis --queue=podcasts
Laravel Horizon ofrece un hermoso panel y configuración basada en código para tus colas Redis que funcionan en Laravel.

Aprender más

Programación de tareas

Programa tareas y comandos repetitivos con una sintaxis expresiva y olvídate de archivos de configuración complicados:

$schedule->job(NotifySubscribers::class)->hourly();

El planificador de Laravel puede manejar incluso múltiples servidores y proporciona protección integrada contra solapamientos:

$schedule->job(NotifySubscribers::class)
->dailyAt('9:00')
->onOneServer();
->withoutOverlapping();

Aprender más

Pruebas

Laravel está diseñado para las pruebas. Desde pruebas unitarias hasta pruebas en el navegador, tendrás más confianza al implementar tu aplicación:

$user = User::factory()->create();
 
$this->browse(fn (Browser $browser) => $browser
->visit('/login')
->type('email', $user->email)
->type('password', 'password')
->press('Login')
->assertPathIs('/home')
->assertSee("Welcome {$user->name}")
);

Aprender más

Eventos y WebSockets

Los eventos de Laravel te permiten enviar y escuchar eventos en tu aplicación, y los listeners pueden enviarse fácilmente a una cola en segundo plano:

OrderShipped::dispatch($order);
class SendShipmentNotification implements ShouldQueue
{
public function handle(OrderShipped $event): void
{
// ...
}
}

Incluso tu aplicación frontend puede suscribirse a eventos de Laravel utilizando Laravel Echo y WebSockets, lo que permite crear aplicaciones en tiempo real y dinámicas:

Echo.private(`orders.${orderId}`)
.listen('OrderShipped', (e) => {
console.log(e.order);
});

Aprender más

Solo hemos arañado la superficie. Laravel proporciona todo lo que necesitas para construir una aplicación web, incluida la verificación por correo electrónico, límites de velocidad y comandos de consola personalizados. Consulta la documentación de Laravel para seguir aprendiendo.

Muévete rápido...
con confianza.

Laravel se esfuerza por brindarte la mejor experiencia de prueba que puedas imaginar. No más pruebas frágiles difíciles de mantener. API hermosas para pruebas, llenado de base de datos y pruebas en el navegador sin dolor te permiten avanzar con confianza.

Aprender más