Apakah prinsip pelaksanaan php middleware

下次还敢
Lepaskan: 2024-04-26 08:57:18
asal
910 orang telah melayarinya

Prinsip pelaksanaan perisian tengah PHP: Middleware membentuk rantaian, dan apabila permintaan itu sampai ke aplikasi, mereka memproses permintaan mengikut urutan. Setiap perisian tengah boleh memeriksa, mengubah suai permintaan atau mengembalikan respons. Kelas middleware melaksanakan antara muka MiddlewareInterface dan mentakrifkan kaedah proses() dan setNext(). Kaedah process() memproses permintaan, dan kaedah setNext() menetapkan middleware seterusnya. Rantaian dimulakan dengan memanggil kaedah process() bagi perisian tengah pertama. Aplikasi ialah kod terakhir dalam rantaian yang akan dilaksanakan.

Apakah prinsip pelaksanaan php middleware

Bagaimana perisian tengah PHP dilaksanakan

Perisian tengah PHP ialah mekanisme popular untuk memasukkan logik ke dalam aplikasi sebelum atau selepas permintaan pelanggan diproses. Ia berfungsi seperti ini:

1 Permintaan kitaran hayat

  • Apabila permintaan mencapai aplikasi PHP, ia melalui satu siri perisian tengah.
  • Setiap perisian tengah boleh memeriksa permintaan, mengubah suai atau mengembalikan respons.
  • Jika perisian tengah mengembalikan respons, kitaran hayat permintaan akan tamat dan pelaksanaan tidak akan diteruskan.

2. Kelas Middleware

  • Kelas middleware melaksanakan antara muka MiddlewareInterface. MiddlewareInterface 接口。
  • 该接口定义了两个方法:process()setNext()

3. process() 方法

  • process() 方法处理请求。
  • 它接收一个 ServerRequestInterface 对象和一个 RequestHandlerInterface 对象。
  • ServerRequestInterface 对象包含有关请求的信息。
  • RequestHandlerInterface 对象是下一个中间件或应用程序的回调函数。
  • process() 方法可以修改请求、返回响应或调用 $handler->handle() 来继续处理。

4. setNext() 方法

  • setNext() 方法设置下一个要执行的中间件。
  • 如果不设置下一个中间件,则请求将继续执行到应用程序。

5. 中间件链

  • 中间件形成一个链,其中每个中间件调用下一个。
  • 应用程序通过调用第一个中间件的 process()
  • Antara muka ini mentakrifkan dua kaedah: process() dan setNext().

3. kaedah proses()

  • kaedahproses() memproses permintaan.
  • Ia menerima objek ServerRequestInterface dan objek RequestHandlerInterface.

objek ServerRequestInterface mengandungi maklumat tentang permintaan itu. Objek RequestHandlerInterface ialah perisian tengah atau fungsi panggil balik aplikasi seterusnya.

Kaedah process() boleh mengubah suai permintaan, mengembalikan respons atau memanggil $handler->handle() untuk meneruskan pemprosesan.

🎜🎜🎜4. kaedah setNext() 🎜🎜🎜🎜 kaedahsetNext() menetapkan perisian tengah seterusnya untuk dilaksanakan. 🎜🎜Jika middleware seterusnya tidak ditetapkan, permintaan akan diteruskan ke aplikasi. 🎜🎜🎜🎜 5. Rantaian Middleware 🎜🎜🎜🎜Middleware membentuk rantaian di mana setiap middleware memanggil yang seterusnya. 🎜🎜Aplikasi memulakan rantaian dengan memanggil kaedah process() bagi perisian tengah pertama. 🎜🎜🎜🎜6. Aplikasi 🎜🎜🎜🎜Application ialah kod yang dilaksanakan selepas dipanggil oleh semua perisian tengah. 🎜🎜Ia biasanya bertanggungjawab untuk memproses permintaan dan membalas respons. 🎜🎜🎜🎜Contoh🎜🎜🎜Contoh berikut menunjukkan middleware PHP mudah yang menambahkan pengepala pada permintaan: 🎜
<code class="php">class AddHeaderMiddleware implements MiddlewareInterface
{
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler)
    {
        $request = $request->withAddedHeader('X-Custom-Header', 'My Value');
        return $handler->handle($request);
    }
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah prinsip pelaksanaan php middleware. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!