Rumah > Artikel > rangka kerja php > Proses pelaksanaan perisian tengah laravel
Dengan pembangunan Internet dan aplikasi Web yang berterusan, rangka kerja pembangunan Web juga muncul. Antaranya, rangka kerja Laravel telah diiktiraf dan digunakan secara meluas. Rangka kerja Laravel menyediakan pembangun dengan fungsi middleware yang penting digunakan untuk menapis dan memproses permintaan dalam aplikasi, meningkatkan kecekapan dan keselamatan pembangunan dengan berkesan. Artikel ini akan memperkenalkan proses pelaksanaan perisian tengah Laravel secara terperinci untuk membantu pembangun lebih memahami dan menggunakan fungsi ini.
1. Apakah itu middleware
Dalam rangka kerja Laravel, middleware (Middleware) merujuk kepada mekanisme untuk menapis dan memproses permintaan HTTP yang memasuki aplikasi, serupa dengan kod Pemintas biasa dan konsep penapis. Dalam keadaan biasa, perisian tengah akan melakukan beberapa kerja pemprosesan umum, seperti:
Mekanisme perisian tengah rangka kerja Laravel dilaksanakan berdasarkan piawaian PSR-15. Dalam Laravel, middleware secara amnya terdiri daripada dua bahagian: middleware class dan middleware call. Seterusnya, kami memperkenalkan kedua-dua bahagian ini secara terperinci masing-masing.
Kelas Middleware<?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class MyMiddleware { /** * Handle an incoming request. * * @param IlluminateHttpRequest $request * @param Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { // 判断当前请求是否携带token if (!$request->header('Authorization')) { return response()->json(['message' => 'Unauthorized'], 401); } // 执行下一个中间件或应用程序 return $next($request); } }
Dalam kod di atas, kami mentakrifkan kelas perisian tengah bernama MyMiddleware, yang menentukan sama ada permintaan itu membawa maklumat pengepala Kebenaran Jika tidak, respons yang tidak dibenarkan akan dikembalikan. jika ia mempunyai Jika dibawa, perisian tengah atau aplikasi seterusnya dilaksanakan.
Panggilan perisian tengah// app/Http/Kernel.php protected $middleware = [ AppHttpMiddlewareMyMiddleware::class, ];
// routes/web.php use AppHttpMiddlewareMyMiddleware; Route::get('/user', function () { // })->middleware(MyMiddleware::class);
Apabila permintaan memasuki aplikasi Laravel, rangka kerja Laravel memanggil kelas middleware ini mengikut urutan di mana perisian tengah diperkenalkan, dan kemudian melaksanakan kaedah prosesnya. Disebabkan oleh komposisi rantaian middleware, ia adalah mudah untuk beroperasi sebelum atau selepas permintaan diproses.
Proses penjadualan middleware bagi rangka kerja Laravel adalah seperti berikut:
Permintaan memasuki aplikasi, diproses oleh middleware HttpKernel dan objek permintaan (contoh IlluminateHttpRequest) dicipta . Panggil perisian tengah global Jika terdapat perisian tengah pertama yang perlu dilaksanakan, kaedah proses perisian tengah dilaksanakan.Atas ialah kandungan terperinci Proses pelaksanaan perisian tengah laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!