Rumah  >  Artikel  >  rangka kerja php  >  Menggunakan perisian tengah untuk mengendalikan permintaan dalam ThinkPHP6

Menggunakan perisian tengah untuk mengendalikan permintaan dalam ThinkPHP6

王林
王林asal
2023-06-20 18:39:421530semak imbas

[Pengenalan]

ThinkPHP6 ialah rangka kerja sumber terbuka PHP yang terkenal Ia secara elegan mewarisi ciri-ciri terbaik versi sebelumnya dan menyepadukan ciri baharu PHP7, menjadikannya lebih pantas dan lebih selamat. Dalam ThinkPHP6, middleware ialah bahagian yang sangat penting, yang membolehkan pembangun memproses sebelum, semasa dan selepas permintaan untuk mencapai aplikasi yang lebih fleksibel dan berskala.

[Teks]

1.

Perisian tengah merujuk kepada kod yang boleh dilaksanakan sebelum dan selepas permintaan sampai ke permohonan anda. Kewujudan middleware membolehkan aplikasi diperluaskan dan diuruskan dengan mudah.

Dalam ThinkPHP6, middleware boleh melaksanakan fungsi berikut:

  1. Pra-pemprosesan laluan, seperti: mengesahkan token, memintas permintaan tidak sah, dsb.
  2. Sebelum kaedah pengawal Pemprosesan selepas, seperti: mengira PV, UV; pemprosesan parameter permintaan, dsb.
  3. Kaedah pengawal selepas pemprosesan, seperti: menyimpan data tindak balas, log rakaman, dsb.
  4. Menghalakan pemprosesan pasca, seperti: Masalah tindak balas, dsb.

2. Penggunaan middleware

Menggunakan middleware ThinkPHP6 adalah sangat mudah Anda hanya perlu mengkonfigurasi middleware masuk fail konfigurasi, dan ia boleh dilaksanakan dalam susunan yang ditentukan.

2.1 Pendaftaran middleware

Dalam fail config/middleware.php, anda boleh melihat senarai middleware lalai berikut:

<?php

return [
    // 别名或分组
    'alias'    => [],
    // 优先级设置,此数组中的中间件会按照优先级进行先后排序
    'priority' => [],
    // 中间件列表
    'middleware' => [
            hinkmiddlewareSessionInit::class,
            hinkmiddlewareAllowCrossDomain::class,
    ],
];

Antaranya, middleware pertama ialah middleware SessionInit , tujuannya adalah untuk memulakan sesi, middleware kedua ialah AllowCrossDomain middleware, tujuannya adalah untuk membenarkan permintaan merentas domain. Jika anda perlu mengkonfigurasi middleware anda sendiri, anda boleh menentukan kelas middleware anda sendiri dan menambahnya pada konfigurasi di atas.

2.2 Isih perisian tengah

Perisian tengah dalam ThinkPHP6 boleh diisih mengikut keutamaan Lebih kecil nilai keutamaan, lebih tinggi susunan pelaksanaan. Dalam fail konfigurasi middleware, anda boleh menetapkan keutamaan middleware untuk kumpulan atau alias yang ditentukan, seperti yang ditunjukkan di bawah:

<?php

return [
    // 别名或分组
    'alias'    => [
        'home' => ppmiddlewareCheck::class,
    ],
    // 优先级设置,此数组中的中间件会按照优先级进行先后排序
    'priority' => [
        ppmiddlewareDemo::class => 1,
        ppmiddlewareTest::class => 2,
    ],
    // 中间件列表
    'middleware' => [
            hinkmiddlewareSessionInit::class,
            hinkmiddlewareAllowCrossDomain::class,
    ],
];

Dalam konfigurasi di atas, tetapkan middleware demo kepada keutamaan No. 1, uji middleware The fail ditetapkan kepada tahap keutamaan 2.

2.3 Penggunaan middleware

Dalam ThinkPHP6, middleware boleh digunakan untuk penghalaan global atau penghalaan kumpulan, atau untuk pengawal atau kaedah pengawal tertentu.

(1) Penghalaan global menggunakan perisian tengah

Dalam fail route/route.php dalam direktori aplikasi, anda boleh mendaftarkan penghalaan global, seperti yang ditunjukkan di bawah:

<?php

use thinkacadeRoute;

Route::get('hello/:name','index/hello')->middleware('Check');

Dalam Dalam kod di atas, middleware bernama Check ditambah melalui middleware('Check'), yang bermaksud bahawa middleware Check dilaksanakan sebelum kaedah indeks/hello dilaksanakan.

(2) Penghalaan kumpulan menggunakan perisian tengah

Dalam fail route/group.php dalam direktori aplikasi, penghalaan kumpulan boleh didaftarkan, seperti berikut:

<?php

use thinkacadeRoute;

//定义分组路由
Route::group('/api', function () {
    Route::get('/user/:id', 'api/user/read')->middleware('Check');
});

Dalam Dalam kod di atas, laluan kumpulan bernama api ditentukan, di mana laluan /user/:id menggunakan perisian tengah bernama Check.

(3) Menggunakan middleware pada tahap pengawal

Dalam fail pengawal, middleware peringkat kaedah boleh ditakrifkan melalui kaedah yang dinamakan khas, seperti ditunjukkan di bawah:

<?php
namespace appcontroller;

class Test
{
    // 方法级别
    public function read() 
    {
        return "Hello Word!";
    }

    // 方法级别
    public function write()
    {
        return "Hello China!";
    }

    // 控制器级别
    protected $middleware = [ppmiddlewareCheck::class];

    // 方法级别
    protected $middleware = [
        'read' => [ppmiddlewareReadCheck::class],
        'write' => [ppmiddlewareWriteCheck::class],
    ];
}

Dalam kod di atas, kaedah baca dan tulis menggunakan middleware peringkat kaedah, dan middleware Semak adalah middleware peringkat pengawal.

[Ringkasan]

Middleware ialah alat berkuasa yang menyediakan kaedah pemprosesan permintaan yang sangat fleksibel, membolehkan kami memproses data sebelum, semasa dan selepas permintaan. Dalam ThinkPHP6, menggunakan middleware adalah sangat mudah Anda hanya perlu menulis kelas middleware mengikut peraturan tertentu dan mengkonfigurasinya.

Atas ialah kandungan terperinci Menggunakan perisian tengah untuk mengendalikan permintaan dalam ThinkPHP6. 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