Rumah > Artikel > rangka kerja php > Bagaimana untuk membuat kunci tengah dalam laravel
Laravel ialah rangka kerja PHP popular yang menyediakan banyak ciri dan alatan untuk memudahkan pembangun membina aplikasi web berkualiti tinggi. Satu ciri yang ketara ialah perisian tengah, yang membolehkan pembangun melakukan tindakan tertentu sebelum permintaan itu sampai ke destinasi terakhirnya dalam aplikasi. Artikel ini akan memperkenalkan anda kepada cara mencipta perisian tengah Laravel.
Middleware ialah satu cara untuk memintas permintaan penghalaan. Apabila aplikasi menerima permintaan, perisian tengah akan melakukan satu siri operasi untuk mengubah suai dan mengawal permintaan tersebut. Middleware boleh digunakan untuk pelbagai operasi seperti pengesahan, kawalan akses, caching dan banyak lagi.
Laravel disertakan dengan beberapa perisian tengah, seperti auth
, csrf
, throttle
, dsb. Selain itu, pembangun boleh mencipta perisian tengah mereka sendiri untuk mencapai tugas yang lebih khusus.
Mencipta middleware dalam Laravel adalah sangat mudah Anda hanya perlu melaksanakan arahan berikut untuk menghasilkan middleware baharu:
php artisan make:middleware MyMiddleware
Arahan di atas akan A. kelas middleware baharu bernama app/Http/Middleware
akan dibuat dalam direktori MyMiddleware
. Kelas ini akan mengandungi dua kaedah: handle()
dan __construct()
. Kaedah
handle()
ialah teras perisian tengah, yang mentakrifkan operasi yang perlu dilakukan apabila perisian tengah dilaksanakan. Kaedah handle()
akan menerima dua parameter: objek permintaan dan penutupan panggil balik. Biasanya, middleware mengubah suai permintaan dan menyerahkannya kepada pengendali seterusnya.
Berikut ialah contoh middleware mudah untuk log masa tindak balas permintaan:
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Log; class ResponseTimeMiddleware { public function handle($request, Closure $next) { $start_time = microtime(true); $response = $next($request); $end_time = microtime(true); $response_time = round(($end_time - $start_time) * 1000, 2); Log::info("Response time: {$response_time}ms"); return $response; } }
Dalam contoh di atas, kami log masa mula permintaan dan masa tamat permintaan Kemudian hitung masa tindak balas. Kami kemudian log masa respons ke log aplikasi dan mengembalikan respons.
Untuk menggunakan middleware, ia perlu didaftarkan dengan aplikasi. Laravel menyediakan dua kaedah untuk mendaftar middleware.
Perisian tengah global akan dijalankan sebelum setiap pengendali permintaan. Untuk mendaftarkan perisian tengah global, buka fail app/Http/Kernel.php
dan tambahkan kelas pada atribut $middleware
.
Contohnya, untuk mendaftarkan ResponseTimeMiddleware
middleware yang kami buat sebelum ini, kami boleh menambah kod berikut pada tatasusunan $middleware
:
protected $middleware = [ \App\Http\Middleware\ResponseTimeMiddleware::class ];
Perisian tengah penghalaan hanya berjalan pada laluan tertentu. Untuk mendaftarkan perisian tengah penghalaan, tambahkan nama kategori dalam atribut app/Http/Kernel.php
dalam fail $routeMiddleware
.
Contohnya, untuk mendaftarkan ResponseTimeMiddleware
middleware yang kami buat sebelum ini, kami boleh menambah kod berikut pada tatasusunan $routeMiddleware
:
protected $routeMiddleware = [ 'response_time' => \App\Http\Middleware\ResponseTimeMiddleware::class, ];
Dalam fail route, kita boleh gunakan kategori Nama untuk menentukan perisian tengah yang akan digunakan:
Route::get('/', function () { return view('welcome'); })->middleware('response_time');
Perisian tengah ialah ciri berkuasa rangka kerja Laravel, yang membolehkan pembangun mengubah suai dan mengubah suai permintaan sebelum aplikasi melaksanakan permintaan. Dalam artikel ini, kami meneroka penciptaan dan pendaftaran perisian tengah Laravel, dan cara menggunakannya dalam aplikasi anda. Jika anda tidak pernah menggunakan perisian tengah sebelum ini, saya syorkan anda meluangkan sedikit masa untuk belajar dan mula menggunakannya.
Atas ialah kandungan terperinci Bagaimana untuk membuat kunci tengah dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!