Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter

Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter

王林
王林asal
2023-07-29 10:53:11878semak imbas

Cara melaksanakan middleware tersuai dalam CodeIgniter

Petikan:
Dalam pembangunan web moden, middleware memainkan peranan penting dalam aplikasi. Ia boleh digunakan untuk melaksanakan beberapa logik pemprosesan yang dikongsi sebelum atau selepas permintaan sampai kepada pengawal. CodeIgniter, sebagai rangka kerja PHP yang popular, juga menyokong penggunaan middleware. Artikel ini akan memperkenalkan cara untuk melaksanakan perisian tengah tersuai dalam CodeIgniter dan memberikan contoh kod mudah.

Ikhtisar Perisian Tengah:
Perisian Tengah ialah mekanisme yang melakukan beberapa tindakan sebelum atau selepas permintaan sampai kepada pengawal. Ia boleh digunakan untuk mengendalikan logik perniagaan biasa seperti pengesahan, pembalakan, kawalan akses, dsb. Dalam CodeIgniter, middleware boleh dianggap sebagai pemintas, mampu melakukan beberapa logik tambahan sebelum atau selepas permintaan sampai kepada pengawal.

Langkah-langkah untuk melaksanakan middleware tersuai adalah seperti berikut:

Langkah 1: Buat kelas middleware tersuai
Buat kelas middleware, namakannya MyMiddleware, dan simpan dalam direktori aplikasi/middlewares. Kelas ini perlu melaksanakan antara muka CodeIgniterMiddlewareMiddlewareInterface dan melaksanakan kaedah handle(). Kaedah handle() ialah kaedah teras middleware dan digunakan untuk mengendalikan logik tertentu.

<?php

namespace AppMiddlewares;

use CodeIgniterMiddlewareMiddlewareInterface;
use CodeIgniterHTTPRequestInterface;
use CodeIgniterHTTPResponseInterface;

class MyMiddleware implements MiddlewareInterface
{
    public function handle(RequestInterface $request, ResponseInterface $response, $arguments = null)
    {
        // 在请求到达控制器之前执行的代码
        // 可以在这里实现身份验证、日志记录、访问控制等逻辑

        // 继续处理请求
        $response = $this->next($request, $response);

        // 在请求到达控制器之后执行的代码
        // 可以在这里实现日志记录、响应处理等逻辑

        return $response;
    }
}

Langkah 2: Daftar middleware
Buka fail app/Config/Autoload.php dan tambahkan konfigurasi berikut dalam tatasusunan $psr4 untuk memuatkan kelas middleware secara automatik:

$psr4 = [
    'App'         => APPPATH,                // 默认
    'Config'      => APPPATH . 'Config',
    'Modules'     => ROOTPATH . 'modules',    // 可选
    'AppMiddlewares' => APPPATH . 'middlewares' // 添加这一行
];

Kemudian buka fail app/Config/Events.php , dan tambahkan nama kelas middleware dalam kekunci 'middleware' bagi tatasusunan $filters, seperti yang ditunjukkan di bawah:

$filters = [
    'csrf'    => AppFiltersCSRF::class,
    'toolbar' => AppFiltersDebugToolbar::class,
    'honeypot' => AppFiltersHoneypot::class,
    'middleware' => AppMiddlewaresMyMiddleware::class // 添加这一行
];

Langkah 3: Menggunakan middleware
Untuk menggunakan middleware dalam pengawal, cuma tambahkannya dalam __construct () pengawal kaedah, tambah kod berikut:

public function __construct()
{
    $this->middleware('MyMiddleware');
}

Perisian tengah akan dilaksanakan dalam susunan yang didaftarkan dalam tatasusunan $filters. Anda juga boleh menggunakan $this->middleware([]) dalam kaedah __construct() pengawal untuk menambah berbilang middleware dan menentukan susunan pelaksanaannya.

Ringkasan:
Artikel ini memperkenalkan cara melaksanakan perisian tengah tersuai dalam CodeIgniter. Dengan mencipta kelas middleware tersuai dan mendaftarkannya dengan aplikasi, kami boleh melakukan beberapa logik pemprosesan biasa sebelum atau selepas permintaan sampai kepada pengawal. Saya harap artikel ini dapat membantu anda lebih memahami dan menggunakan perisian tengah dalam CodeIgniter.

Rujukan:

  • Dokumentasi rasmi CodeIgniter: https://codeigniter.com/user_guide/incoming/middleware.html

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter. 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

Artikel berkaitan

Lihat lagi