softueri i mesëm laravel

softueri i mesëm laravel

Laravel 11 përmban një program ndërmjetës të thjeshtuar dhe një konfigurim shumë të efektshëm.

Përshtatjet e programit të mesëm mund të bëhen direkt në skedar bootstrap/app.php.

Në këtë artikull do t'ju tregoj disa shembuj të konfigurimit të ndërmjetëm Laravel, konfigurimit bazë dhe të avancuar.

3 minuti

Si të personalizoni softuerin e mesëm laravel

Si të ridrejtoni përdoruesit dhe të ftuarit në një adresë të përcaktuar

Në rast se duam të ridrejtojmë përdoruesit e vërtetuar dhe përdoruesit e ftuar në një adresë specifike, ne mund të përdorim metodën redirectTo(). Në veçanti, cilësimi duhet të bëhet në skedar bootstrap/app.php, le të shohim një shembull ku të ftuarit ridrejtohen gjithmonë në faqen e identifikimit, ndërsa përdoruesit që njohim, d.m.th. përdoruesit e vërtetuar, ridrejtohen në panelin e punës:

->withMiddleware(function (Middleware $middleware) {
    $middleware->redirectTo(
        guests: '/admin/login',
        users: '/dashboard'
    );
})

Më parë, ky konfigurim u trajtua Authenticated.php e RedirectIfAuthenticated.php

Si të ridrejtoni mysafirët në një adresë specifike

Për të vendosur një ridrejtim specifik për mysafirët, mund të përdorni metodën redirectGuestsTo(). Në veçanti, cilësimi duhet të bëhet në skedar bootstrap/app.php, le të shohim një shembull ku të ftuarit ridrejtohen gjithmonë në faqen e identifikimit:

->withMiddleware(function (Middleware $middleware) {
    $middleware->redirectGuestsTo('/admin/login');
})

Në versionet e mëparshme, ky ridrejtim u trajtua brenda skedarit të softuerit të mesëm. Authenticated.php.

Për të përjashtuar cookies nga enkriptimi, middleware di laravel 11 na ofron metodën encryptCookies(), ku parametri na lejon të specifikojmë cookies. Le të shohim një shembull:

php->withMiddleware(function (Middleware $middleware) {
    $middleware->encryptCookies(except: [
        'foo',
        'bar',
    ]);
})

Në versionet e mëparshme kjo veçori ishte përfshirë EncryptCookies.php.

Duke përjashtuar rrugët nga mbrojtja CSRF

Nëse keni nevojë të përjashtoni disa rrugë nga mbrojtja CSRF, Laravel Middleware na ofron metodën validateCsrfTokens(), i cili kur përdoret siç duhet na lejon të përjashtojmë rrugët e specifikuara.

Në kodin e mëposhtëm, shohim një shembull ku përjashtojmë rrugët /foo/* e /bar. Kodi duhet të futet në skedar bootstrap/app.php

->withMiddleware(function (Middleware $middleware) {
    $middleware->validateCsrfTokens(except: [
        '/foo/*',
        '/bar',
    ]);
})

Në versionet e mëparshme të Laravel, ky cilësim u bë në skedar VerifyCsrfToken.php.

Përjashtimi i route nga URL Signature Validation

Për të përjashtuar një rrugë (ose route) nga vërtetimi i nënshkrimit të URL-së, softueri i mesëm laravel na ofron metodën validateSignatures(), le të shohim një shembull:

->withMiddleware(function (Middleware $middleware) {
$middleware->validateSignatures(except: [
'/api/*',
]);
})

Në versionet e mëparshme të Laravel, konfigurimi i Middleware trajtohej në skedar ValidateSignature.php.

Parandaloni konvertimin e vargjeve boshe në null

Për të kontrolluar sjelljen e konvertimit të vargjeve boshe në null, përdorni metodën:convertEmptyStringsToNull()

->withMiddleware(function (Middleware $middleware) {
    $middleware->convertEmptyStringsToNull(except: [
        fn ($request) => $request->path() === 'foo/bar',
    ]);
})

Kjo qasje zëvendëson nevojën për të hequr nga ConvertEmptyStringsToNullapp/Http/Kernel.php.

Si të parandaloni trimming vargjet në kërkesa

Për të parandaluar prerjen e vargjeve në shtigje specifike, mund të përdorni metodën:trimStrings()

->withMiddleware(function (Middleware $middleware) {
    $middleware->trimStrings(except: [
        '/foo',
    ]);
})

Më parë, ky cilësim menaxhohej në TrimStrings.php.

Përshtatje të avancuara të softuerit të mesëm

Menaxhimi global i stakut të programeve të mesme

Ju mund të shtoni, hiqni ose zëvendësoni softuerin e mesëm brenda pirgut global:

->withMiddleware(function (Middleware $middleware) {
    $middleware->prepend(SomeMiddleware::class);
    $middleware->append(AnotherMiddleware::class);
    $middleware->remove(UnwantedMiddleware::class);
    $middleware->replace(OldMiddleware::class, NewMiddleware::class);
})

Përdorimi i grupeve të Middleware

Laravel lejon personalizimet brenda grupeve të programeve të mesme:

->withMiddleware(function (Middleware $middleware) {
    $middleware->group('custom', [
        FirstMiddleware::class,
        SecondMiddleware::class,
    ]);
    
    $middleware->prependToGroup('web', NewWebMiddleware::class);
    $middleware->appendToGroup('api', NewApiMiddleware::class);
    $middleware->removeFromGroup('web', OldWebMiddleware::class);
    $middleware->replaceInGroup('api', OldApiMiddleware::class, NewApiMiddleware::class);
})

Opsionet e programit të mesëm specifik për API

Për aplikacionet me qendër API, mund të përdorni metoda të dizajnuara posaçërisht për API-të:

->withMiddleware(function (Middleware $middleware) {
    $middleware->statefulApi(); // Enables Sanctum's stateful middleware
    $middleware->throttleApi('custom_limiter', true); // Sets API rate limiting
})

Konfigurimi i përfaqësuesve dhe hosteve të besuar

Nëse aplikacioni juaj është pas një përfaqësuesi, mund të konfiguroni përfaqësuesit dhe hostet e besuar:

->withMiddleware(function (Middleware $middleware) {
    $middleware->trustHosts(['example.com', '*.example.com']);
    $middleware->trustProxies(['192.168.1.1', '192.168.1.2']);
})

Aktivizimi i vërtetimit të sesionit

Për aplikacionet që kërkojnë seanca të vërtetuara në grupin "web", aktivizoni ato me:

->withMiddleware(function (Middleware $middleware) {
    $middleware->authenticateSessions();
})

Konfigurimi middleware di laravel 11 ofron thjeshtësi dhe fleksibilitet. Pavarësisht nëse jeni duke personalizuar shtigjet, duke siguruar API-në tuaj ose duke rregulluar grupet tuaja të programeve të mesme, këto opsione ju lejojnë të optimizoni programin e mesëm të aplikacionit tuaj për të përmbushur nevojat tuaja.

Autor