routes laravel 11

Laravel 11 es una versión del popular framework PHP que continúa con la tradición de ofrecer herramientas robustas para el desarrollo web. Una de las características fundamentales de Laravel es su sistema de rutas, que permite definir cómo las solicitudes HTTP se manejan dentro de la aplicación.

EXEMPLE RUTES PROJECTE ADMINISTRACIO:

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\MyTestController;
use App\Http\Controllers\PostController;
use App\Http\Controllers\PostFinanzaController;
use App\Http\Controllers\GalleryController;
use App\Http\Controllers\Galleryb5Controller;
use App\Http\Controllers\RouteController;

use App\Models\Post;

Route::get('/linkstorage', function () {
    Artisan::call('storage:link');
});

Route::get('/inici', [PostController::class, 'inici'])->name('inici');
Route::get('/posts/create', [PostController::class, 'create'])->name('posts.create');
Route::post('/posts/store', [PostController::class, 'store'])->name('posts.store');
Route::get('/posts/datatables', [PostController::class, 'getPosts'])->name('posts.datatables');
Route::get('/posts/edit/{id}', [PostController::class, 'edit'])->name('posts.edit');
Route::put('/posts/update/{id}', [PostController::class, 'update'])->name('posts.update');
Route::delete('/posts/delete/{id}', [PostController::class, 'destroy'])->name('posts.destroy');
Route::get('/', [PostController::class, 'indexGallery'])->name('posts.gallery');

Route::get('/gallery', [GalleryController::class, 'index'])->name('gallery.index');
Route::get('/gallery/detalle/{title}', [GalleryController::class, 'detalle'])->name('gallery.detalle');

Route::get('/posts', [PostController::class, 'index'])->name('posts.index');
Route::get('/category/{id}', [PostController::class, 'filterByCategory'])->name('posts.category');
Route::get('/etiqueta/{id}', [PostController::class, 'filterByEtiqueta'])->name('posts.etiqueta');

Route::get('/posts/category/{id}', [PostController::class, 'filterByCategory'])->name('posts.category');
Route::get('/posts/etiqueta/{id}', [PostController::class, 'filterByEtiqueta'])->name('posts.etiqueta');
Route::get('/posts/detalle/{id}', [PostController::class, 'detalle'])->name('posts.detalle');

Route::get('/welcome', function () {
    return view('welcome');
});

Route::get('/example', function () {
    // Ejecutar una consulta simple para obtener todos los posts ordenados alfabéticamente por título
    $posts = Post::orderBy('title', 'asc')->get();

    // Retornar una vista con los resultados
    return view('example', ['posts' => $posts]);
})->name('example');


Route::get('/conexio', function () {
    return view('exemples_php.conexio');
});

Route::get('/array', function () {
    return view('exemples_php.array');
});


Route::get('/swiper', [PostController::class, 'swiperIndex'])->name('swiper.index');
Route::get('/project-gallery', [PostController::class, 'projectGallery'])->name('project.gallery');

Route::get('/welcome', function () {
    return view('welcome');
});

Route::get('/routes', [RouteController::class, 'index']);
Route::view('/list-routes', 'list-routes');

Route::middleware([
    'auth:sanctum',
    config('jetstream.auth_session'),
    'verified',
])->group(function () {
    Route::get('/dashboard', function () {
        return view('dashboard');
    })->name('dashboard');
});

Conceptos Básicos de Rutas en Laravel 11

  1. Definición de Rutas: En Laravel, las rutas se definen en archivos de rutas, que se encuentran en el directorio routes. Los principales archivos de rutas son:
    • web.php: Para rutas que responden a solicitudes del navegador (generalmente HTML).
    • api.php: Para rutas que responden a solicitudes de APIs (generalmente JSON).
    • console.php: Para comandos de la consola.
    • channels.php: Para configurar los canales de comunicación en tiempo real usando Laravel Echo.
  2. Métodos HTTP: Laravel ofrece métodos específicos para definir rutas que responden a diferentes verbos HTTP:
    • get: Para solicitudes GET.
    • post: Para solicitudes POST.
    • put: Para solicitudes PUT.
    • delete: Para solicitudes DELETE.
    • patch: Para solicitudes PATCH.
    • options: Para solicitudes OPTIONS.
  3. Ejemplo de una ruta básica en web.php:
  4. Route::get('/users', [UserController::class, 'index']);
  5. Rutas con Parámetros: Puedes definir rutas con parámetros dinámicos, lo que permite que una ruta pueda recibir valores variables:
  6. Route::get('/user/{id}', [UserController::class, 'show']);
  7. Aquí {id} es un parámetro dinámico que se puede capturar en el controlador.
  8. Rutas con Opcionalidad: También es posible que ciertos parámetros sean opcionales:
  9. Route::get('/user/{name?}', [UserController::class, 'show']);
  10. En este caso, name es un parámetro opcional.
  11. Agrupación de Rutas: Laravel permite agrupar rutas que comparten características comunes, como middleware o prefijos en la URL:
  12. Route::prefix('admin')->middleware('auth')->group(function () {
        Route::get('/dashboard', [AdminController::class, 'dashboard']);
        Route::get('/users', [AdminController::class, 'users']);
    });
  13. Este ejemplo muestra cómo agrupar rutas bajo el prefijo admin y aplicar el middleware auth a todas ellas.
  14. Controladores de Rutas: Laravel 11 sigue promoviendo el uso de controladores para manejar la lógica de las rutas, separando la lógica de negocio de la definición de rutas. Esto hace que el código sea más limpio y mantenible.
  15. Rutas de API: Laravel ofrece un archivo específico para rutas de API (api.php) y tiene características como la posibilidad de aplicar automáticamente el prefijo api y el middleware auth:sanctum para autenticación mediante tokens.

Novedades en Laravel 11 para Rutas

Aunque Laravel 11 sigue siendo coherente con las versiones anteriores, se espera que introduzca mejoras en cuanto a rendimiento, nuevas funcionalidades y posibles simplificaciones en la manera de definir rutas. Algunas de las áreas donde podría haber mejoras incluyen:

  • Mejoras en la definición de rutas de API: Mejor soporte para manejar versiones de API y mejoras en la documentación automática de las mismas.
  • Optimización del rendimiento: Aún mejor manejo de la caché de rutas para aplicaciones de gran escala.
  • Nuevas funcionalidades de middleware: Mejoras en la integración de middleware para un control más granular y flexible de las rutas.

Laravel continúa evolucionando, y las rutas, siendo una parte fundamental del framework, se adaptan para ofrecer más potencia y flexibilidad a los desarrolladores.