Rumah  >  Artikel  >  rangka kerja php  >  Middleware dalam rangka kerja Yii: mencapai pemprosesan data yang cekap

Middleware dalam rangka kerja Yii: mencapai pemprosesan data yang cekap

WBOY
WBOYasal
2023-06-21 10:58:11944semak imbas

Sebagai rangka kerja PHP yang popular, rangka kerja Yii mempunyai banyak alatan dan teknologi yang sangat baik untuk pemprosesan data, salah satunya ialah perisian tengah. Middleware ialah teknologi pemprosesan data biasa yang boleh memproses dan mengawal data permintaan dan tindak balas dengan berkesan. Dalam artikel ini, kami akan meneroka fungsi perisian tengah bagi rangka kerja Yii, memperkenalkan peranan dan penggunaannya, dan menerangkan cara untuk mencapai pemprosesan data yang cekap melalui perisian tengah.

Apakah perisian tengah?

Perisian tengah ialah teknologi yang digunakan untuk memproses data permintaan dan tindak balas Ia terletak di antara permintaan dan tindak balas aplikasi dan boleh memproses dan mengawal kedua-duanya. Dalam rangka kerja Yii, middleware ialah komponen program boleh dikonfigurasikan Ia terdiri daripada satu siri kelas dan fail konfigurasi dan boleh melaksanakan pelbagai operasi pemprosesan data dengan mudah.

Fungsi utama middleware termasuk:

  1. Melaraskan permintaan: Middleware boleh memproses parameter permintaan, seperti mengesahkan format data, menapis kandungan haram, dsb.
  2. Permintaan perubahan dinamik: Middleware boleh menukar proses pemprosesan permintaan secara dinamik mengikut parameter permintaan yang berbeza, seperti menukar pengawal yang berbeza, memuatkan modul dan pemalam secara dinamik, dsb.
  3. Optimumkan respons: Middleware boleh memproses dan mengoptimumkan data respons, seperti menambah tera air imej, melaraskan saiz imej, memampatkan data respons, dsb.
  4. Pengendalian pengecualian: Middleware boleh mengendalikan pengecualian yang berlaku semasa pemprosesan permintaan dan menangkap serta merekod maklumat ralat.

Faedah menggunakan middleware

Faedah menggunakan middleware sangat jelas, terutamanya termasuk aspek berikut.

  1. Meningkatkan kebolehgunaan semula kod: Middleware boleh merangkum beberapa kod biasa ke dalam komponen berasingan, yang boleh digunakan semula dalam berbilang aplikasi dan mengurangkan pembangunan pertindihan kod.
  2. Tingkatkan kejelasan kod: Middleware memisahkan proses pemprosesan kepada beberapa langkah dan secara bebas merangkum operasi setiap langkah Struktur kod lebih jelas dan lebih mudah difahami dan diselenggara.
  3. Tingkatkan kecekapan pembangunan: Gunakan perisian tengah untuk melaksanakan beberapa operasi pemprosesan dan kawalan data biasa dengan cepat, mengurangkan beban kerja penulisan kod berulang dan meningkatkan kecekapan pembangunan.
  4. Tingkatkan prestasi aplikasi: Middleware boleh menjadikan pemprosesan data aplikasi lebih cekap, meningkatkan kelajuan tindak balas dan pengalaman pengguna.

Contoh: Gunakan perisian tengah untuk menapis permintaan yang menyalahi undang-undang

Di bawah kami akan menggunakan contoh mudah untuk memperkenalkan cara menapis permintaan yang menyalahi undang-undang melalui perisian tengah.

  1. Buat kelas middleware

Kami mula-mula mencipta kelas middleware bernama "FilterMiddleware" untuk menapis permintaan yang menyalahi undang-undang.

namespace appcomponents;

use yiiaseComponent;
use yiiwebRequest;

class FilterMiddleware extends Component
{
    public function beforeAction($action)
    {
        $request = Yii::$app->request;
        $ip = $request->getUserIP();

        // 根据IP地址过滤非法请求
        if ($ip == '127.0.0.1') {
            return true;
        } else {
            return false;
        }
    }
}

Dalam kod ini, kami mencipta komponen middleware bernama "FilterMiddleware" dengan mewarisi kelas Komponen rangka kerja Yii. Antaranya, kaedah beforeAction ialah kaedah utama middleware Ia memintas sebelum memproses permintaan dan boleh digunakan untuk melaksanakan beberapa operasi pemprosesan data biasa.

Dalam kaedah beforeAction, kami mula-mula mendapatkan objek permintaan $request. Kemudian, dengan memanggil kaedah $request->getUserIP(), alamat IP yang diminta diperolehi. Akhir sekali, kami menapis permintaan haram dengan menentukan sama ada alamat IP ialah '127.0.0.1'. Jika ia adalah permintaan yang menyalahi undang-undang, pulangkan palsu, sebaliknya kembalikan benar.

  1. Mengkonfigurasi middleware

Seterusnya, kita perlu mengkonfigurasi middleware yang baru kita buat ke dalam rangka kerja Yii. Kami boleh menambah konfigurasi berikut pada fail konfigurasi Yii:

return [
    // ...
    'components' => [
        // ...
        'filter' => [
            'class' => 'appcomponentsFilterMiddleware'
        ],
        // ...
    ],
    'as filter' => [
        'class' => 'appcomponentsFilterMiddleware'
    ]
    // ...
];

Dalam kod ini, kami menambah komponen bernama "penapis" pada fail konfigurasi Yii dan menetapkan kelasnya kepada appcomponentsFilterMiddleware. Dengan cara ini, perisian tengah penapisan boleh dipanggil dalam komponen Yii.

Pada masa yang sama, kami juga menambah komponen aplikasi bernama "penapis", yang akan dipanggil secara automatik semasa semua pemprosesan permintaan.

  1. Mencapai kesan penapisan

Pada ketika ini, kami telah berjaya mencipta perisian tengah untuk menapis permintaan yang tidak sah dan mengkonfigurasinya kepada rangka kerja Yii Seterusnya, kami boleh mengujinya bekerja. Katakan kita mempunyai pengawal bernama "tapak" dan kaedah tindakan bernama "indeks". Jika pengguna mengakses kaedah tindakan pengawal dengan alamat IP '127.0.0.1', ia akan dilaksanakan seperti biasa, jika tidak, ia akan Ditapis oleh perisian tengah.

namespace appcontrollers;

use yiiwebController;

class SiteController extends Controller
{
    public function actionIndex()
    {
        // ...
    }
}

Ringkasnya, dengan menggunakan teknologi perisian tengah rangka kerja Yii, kami boleh mencapai pemprosesan dan kawalan data yang cekap dengan mudah. Sama ada penapisan data, pembentukan permintaan atau pengoptimuman tindak balas, perisian tengah boleh membantu kami mencapai aplikasi yang lebih cekap dan boleh dipercayai.

Atas ialah kandungan terperinci Middleware dalam rangka kerja Yii: mencapai pemprosesan data yang cekap. 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