bathar meadhanach laravel

bathar meadhanach laravel

Tha Laravel 11 a’ nochdadh bathar meadhanach nas sìmplidhe, agus rèiteachadh gu math sgiobalta.

Faodar gnàthachadh Middleware a dhèanamh gu dìreach san fhaidhle bootstrap/app.php.

San artaigil seo seallaidh mi dhut grunn eisimpleirean de rèiteachadh bathar meadhan Laravel, rèiteachadh bunaiteach agus adhartach.

3 minuti

Mar a nì thu gnàthachadh laravel middleware

Mar as urrainn dhut luchd-cleachdaidh agus aoighean ath-stiùireadh gu seòladh ainmichte

Air eagal gu bheil sinn airson an dà chuid luchd-cleachdaidh dearbhte agus luchd-aoigheachd ath-stiùireadh gu seòladh sònraichte, is urrainn dhuinn an dòigh a chleachdadh redirectTo(). Gu sònraichte, feumar an suidheachadh a dhèanamh anns an fhaidhle bootstrap/app.php, chì sinn eisimpleir far a bheil aoighean an-còmhnaidh air an ath-stiùireadh chun duilleag logadh a-steach, fhad ‘s a bhios luchd-cleachdaidh as aithne dhuinn, ie luchd-cleachdaidh dearbhte, air an ath-stiùireadh chun deas-bhòrd obrach:

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

Roimhe sin, chaidh an rèiteachadh seo a làimhseachadh a-steach Authenticated.php e RedirectIfAuthenticated.php

Mar as urrainn dhut aoighean ath-stiùireadh gu seòladh sònraichte

Gus ath-sheòladh sònraichte a stèidheachadh airson aoighean, faodaidh tu an dòigh a chleachdadh redirectGuestsTo(). Gu sònraichte, feumar an suidheachadh a dhèanamh anns an fhaidhle bootstrap/app.php, chì sinn eisimpleir far a bheil aoighean an-còmhnaidh air an ath-stiùireadh chun duilleag logadh a-steach:

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

Ann an dreachan roimhe, chaidh an ath-stiùireadh seo a làimhseachadh taobh a-staigh am faidhle middleware. Authenticated.php.

Gus briosgaidean a thoirmeasg bho chrioptachadh, tha an mearachdan meadhanach di larabhail 11 a’ toirt dhuinn an dòigh-obrach encryptCookies(), far a bheil am paramadair a 'leigeil leinn na briosgaidean a shònrachadh. Chì sinn eisimpleir:

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

Ann an dreachan roimhe bha am feart seo air a ghabhail a-steach EncryptCookies.php.

Às aonais slighean bho dhìon CSRF

Ma dh’ fheumas tu cuid de shlighean a thoirmeasg bho dhìon CSRF, bheir Laravel Middleware an dòigh dhuinn validateCsrfTokens(), a leigeas leinn na slighean ainmichte a thoirmeasg nuair a thèid an cleachdadh gu h-iomchaidh.

Anns a 'chòd a leanas, chì sinn eisimpleir far a bheil sinn a' dùnadh slighean /foo/* e /bar. Feumaidh an còd a bhith air a chuir a-steach don fhaidhle bootstrap/app.php

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

Ann an dreachan roimhe de Laravel, chaidh an suidheachadh seo a dhèanamh san fhaidhle VerifyCsrfToken.php.

Às-dùnadh de route dalla URL Signature Validation

Gus slighe a chuir a-mach (no route) bho dhearbhadh ainm-sgrìobhte URL, bathar meadhanach laravel a’ toirt dhuinn an dòigh-obrach validateSignatures(), chì sinn eisimpleir:

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

Ann an dreachan roimhe de Laravel, chaidh rèiteachadh Middleware a làimhseachadh san fhaidhle ValidateSignature.php.

Cuir casg air sreangan falamh bho bhith air an tionndadh gu null

Gus smachd a chumail air giùlan tionndadh sreangan falamh gu null, cleachd an dòigh:convertEmptyStringsToNull()

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

Tha an dòigh-obrach seo a 'dol an àite an fheum air falbh bho ConvertEmptyStringsToNullapp/Http/Kernel.php.

Ciamar a casg a chur air an trimming sreathan ann an iarrtasan

Gus casg a chuir air sreangan bho bhith air an gearradh air slighean sònraichte, faodaidh tu an dòigh a chleachdadh:trimStrings()

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

Roimhe sin, chaidh an suidheachadh seo a riaghladh a-steach TrimStrings.php.

Gnàthachadh bathar-bog adhartach

Stiùireadh cruachan meadhan-bathair cruinneil

Faodaidh tu bathar meadhanach a chur ris, a thoirt air falbh no a chuir na àite taobh a-staigh a’ chruach chruinneil:

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

A’ cleachdadh Buidhnean Middleware

Tha Laravel a’ ceadachadh gnàthachadh taobh a-staigh buidhnean meadhan-bathair:

->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);
})

Roghainnean meadhan bathar-bog sònraichte API

Airson tagraidhean API-centric, faodaidh tu dòighean a chleachdadh a chaidh a dhealbhadh gu sònraichte airson APIan:

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

A’ rèiteachadh luchd-ionaid agus luchd-aoigheachd earbsach

Ma tha an tagradh agad air cùl neach-ionaid, faodaidh tu proxies agus luchd-aoigheachd earbsach a rèiteachadh:

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

A’ comasachadh dearbhadh seisean

Airson tagraidhean a dh’ fheumas seiseanan dearbhte sa bhuidheann “lìn”, thoir comas dhaibh le:

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

An rèiteachadh mearachdan meadhanach di larla 11 a’ tabhann sìmplidheachd agus sùbailteachd. Co-dhiù a tha thu a’ gnàthachadh shlighean, a’ daingneachadh an API agad, no a’ gleusadh do chruachan meadhan-bathair, leigidh na roghainnean sin leat bathar-meadhan an tagraidh agad a bharrachadh gus coinneachadh ri na feumalachdan agad.

Autore