Rumah >pembangunan bahagian belakang >tutorial php >CodeIgniter middleware: melaksanakan pemprosesan tersuai permintaan dan respons

CodeIgniter middleware: melaksanakan pemprosesan tersuai permintaan dan respons

WBOY
WBOYasal
2023-08-01 10:27:27942semak imbas

CodeIgniter middleware: Laksanakan pemprosesan tersuai permintaan dan respons

Pengenalan:
Apabila membangunkan aplikasi web, kita selalunya perlu memproses permintaan dan respons. Rangka kerja CodeIgniter menyediakan mekanisme perisian tengah yang membolehkan kami menyesuaikan logik untuk memproses permintaan dan respons. Middleware ialah sekeping kod yang dilaksanakan sebelum permintaan sampai kepada pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, kita akan mempelajari cara menggunakan perisian tengah CodeIgniter untuk melaksanakan pengendalian tersuai permintaan dan respons.

1. Pasang CodeIgniter
Pertama, kita perlu memasang rangka kerja CodeIgniter. Anda boleh memasang CodeIgniter dengan mentakrifkan fail composer.json dan menjalankan arahan "kemas kini komposer". Berikut ialah contoh fail composer.json:

{

"require": {
    "codeigniter4/framework": "^4.1"
}

}

2. Cipta perisian tengah
Dalam CodeIgniter, kami boleh menyesuaikan pemprosesan permintaan dan respons dengan mencipta perisian tengah. Middleware biasanya disimpan dalam direktori app/Middleware. Kita boleh mencipta perisian tengah yang dipanggil LogMiddleware menggunakan arahan berikut:

php spark make:middleware LogMiddleware

Ini akan mencipta fail bernama LogMiddleware.php dalam direktori app/Middleware.

3. Laksanakan logik pemprosesan permintaan
Dalam fail LogMiddleware.php, kita boleh mentakrifkan logik kod yang perlu dilaksanakan sebelum permintaan sampai ke pengawal. Berikut ialah contoh:

ruang nama AppMiddleware;

gunakan CodeIgniterHTTPRequestInterface;
gunakan CodeIgniterHTTPResponseInterface; antara muka muka. Dalam kaedah before(), kami log butiran permintaan yang diterima, termasuk kaedah permintaan dan laluan URI. Dalam kaedah selepas(), kami merekodkan kod status respons.

4. Daftar middleware

Untuk menggunakan middleware, kita perlu mendaftarkannya dalam konfigurasi fail aplikasi/App.php. Cari kod berikut dan tambahkan LogMiddleware pada tatasusunan $middlewareGroups:


'groups' => [

protected $logger;

public function __construct(LoggerInterface $logger)
{
    $this->logger = $logger;
}

public function before(RequestInterface $request, $arguments = null)
{
    $this->logger->log(LogLevel::INFO, 'Request received: ' . $request->getMethod() . ' ' . $request->getUri()->getPath());
}

public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
    $this->logger->log(LogLevel::INFO, 'Response sent with status: ' . $response->getStatusCode());
}

],

Kini, LogMiddleware akan digunakan secara automatik dalam kumpulan middleware "web".

5 Uji middleware
Kami boleh mencipta contoh mudah dalam pengawal untuk menguji middleware kami. Dalam direktori app/Controllers, buat fail bernama Home.php dan tambahkan kod berikut:

namespace AppControllers;

use CodeIgniterController;

class Home extends Controller
{

rreee}

6. Akses aplikasi dalam penyemak imbas

Kini, dengan mengakses aplikasi dalam penyemak imbas, kita boleh melihat kesan perisian tengah dalam masa nyata. Masukkan URL aplikasi ke dalam penyemak imbas anda dan perhatikan permintaan dan maklumat respons dalam log.

Ringkasan:

Mekanisme perisian tengah CodeIgniter memberikan kami keupayaan untuk menyesuaikan permintaan dan respons. Dengan mencipta middleware, kami boleh menggunakan logik kod tersuai sebelum permintaan mencapai pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, kami mempelajari cara mencipta perisian tengah yang mudah dan mendaftarkannya untuk digunakan dalam aplikasi anda. Saya harap artikel ini membantu dan membolehkan anda menguasai penggunaan perisian tengah CodeIgniter dengan lebih baik.

Atas ialah kandungan terperinci CodeIgniter middleware: melaksanakan pemprosesan tersuai permintaan dan respons. 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