Rumah  >  Artikel  >  rangka kerja php  >  Penjelasan terperinci tentang pelaksanaan perisian tengah Laravel

Penjelasan terperinci tentang pelaksanaan perisian tengah Laravel

PHPz
PHPzasal
2023-04-06 16:44:16655semak imbas

Laravel ialah rangka kerja pembangunan web yang sangat popular dalam medan PHP. Dalam Laravel, middleware memainkan peranan yang sangat penting. Jadi bagaimanakah middleware Laravel dilaksanakan? Artikel ini akan memperkenalkan perkara ini secara terperinci.

1. Apakah middleware

Sebelum kita mula memperkenalkan butiran pelaksanaan middleware Laravel, kita perlu menjelaskan apa itu middleware. Dalam pembangunan web, middleware merujuk kepada komponen yang terletak di antara klien dan pelayan. Middleware mengawal input klien dan output pelayan, dan boleh mempraproses dan membalas permintaan.

Dalam Laravel, fungsi yang boleh dicapai oleh middleware adalah sangat kaya. Contohnya, sahkan sama ada pengguna telah log masuk, tetapkan pengepala respons, permintaan penapis, dsb. Menggunakan perisian tengah dalam Laravel membantu memisahkan permintaan dan logik pemprosesan tindak balas, menjadikannya lebih mudah untuk mengekalkan kod.

2. Cara melaksanakan middleware Laravel

Dalam rangka kerja Laravel, pelaksanaan middleware adalah sangat mudah Anda hanya perlu mewarisi kelas IlluminateHttpMiddlewareMiddleware. Berikut ialah contoh mengesahkan sama ada pengguna telah log masuk:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class AuthMiddleware
{
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            return redirect(&#39;/login&#39;);
        }

        return $next($request);
    }
}

Di atas ialah pelaksanaan asas perisian tengah, yang melaksanakan kaedah pengendalian untuk pramemproses dan memproses permintaan dan respons.

Dalam perisian tengah Laravel, kaedah pemegang diperlukan untuk mengendalikan permintaan dan respons. Kaedah pemegang mempunyai dua parameter Parameter pertama ialah $request, yang mewakili contoh permintaan, parameter kedua ialah $next, yang mewakili fungsi penutupan yang meneruskan pelaksanaan permintaan seterusnya.

Jika kami perlu melakukan pemprosesan respons dalam perisian tengah, kami boleh melakukannya dengan mengembalikan tika Respons. Contohnya:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Response;

class SetHeadersMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->headers->set('X-Powered-By', 'Laravel');

        return $response;
    }
}

Di atas ialah contoh menukar pengepala respons.

3. Menggunakan perisian tengah Laravel

Dalam Laravel, kita boleh menggunakan perisian tengah dengan mudah. Tambahkan kelas middleware yang kami tulis pada atribut $routeMiddleware, dan kemudian gunakannya dalam konfigurasi penghalaan. Contohnya:

  1. Tambahkan kelas AuthMiddleware dalam atribut $routeMiddleware dalam fail app/Http/Kernel.php Kodnya adalah seperti berikut:
protected $routeMiddleware = [
    ...
    'auth' => \App\Http\Middleware\AuthMiddleware::class,
    ...
];
  1. Tentukan perisian tengah dalam laluan, contohnya:
Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware('auth');

Kod di atas menyatakan bahawa apabila pengguna mengakses laluan /papan pemuka, ia perlu mengesahkan sama ada pengguna telah log masuk dan jika tidak log masuk, ubah hala ke halaman log masuk.

4. Kesimpulan

Artikel ini memperkenalkan secara ringkas pelaksanaan dan penggunaan perisian tengah Laravel. Middleware boleh membantu kami memisahkan logik pemprosesan permintaan dan tindak balas serta meningkatkan kebolehselenggaraan kod. Dalam proses pembangunan sebenar, menggunakan perisian tengah Laravel boleh membantu kami meningkatkan kebolehgunaan semula dan kebolehskalaan kod, dan merupakan cara yang sangat disyorkan.

Atas ialah kandungan terperinci Penjelasan terperinci tentang pelaksanaan perisian tengah Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn