Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan penapis pengawal dalam rangka kerja PHPixie?

Bagaimana untuk menggunakan penapis pengawal dalam rangka kerja PHPixie?

WBOY
WBOYasal
2023-06-03 08:51:20886semak imbas

PHPixie ialah rangka kerja PHP ringan yang menggunakan corak seni bina MVC (Model-View-Controller). Melaksanakan penapis pengawal dalam PHPixie adalah sangat mudah, ia menyediakan satu set penapis terbina dalam dan membolehkan anda membuat penapis tersuai untuk mengendalikan keperluan projek anda.

Artikel ini akan memperkenalkan pembaca kepada cara menggunakan penapis pengawal dalam rangka kerja PHPixie.

1. Apakah itu penapis pengawal?

Penapis pengawal ialah blok kod yang boleh dilaksanakan sebelum atau selepas kaedah pengawal dilaksanakan. Penapis boleh digunakan untuk mengesahkan data input, menyemak kebenaran pengguna, log transaksi atau sebarang operasi lain yang serupa.

Dalam PHPixie, penapis dilaksanakan berdasarkan komponen yang dipanggil Filtre. Filtre mengandungi satu set kaedah yang membolehkan anda membuat dan melaksanakan penapis.

2. Penapis terbina dalam PHPixie

PHPixie menyediakan pelbagai penapis terbina dalam, yang boleh digunakan untuk melaksanakan operasi berikut:

1 dilog masuk

2. Semak peranan pengguna

3. Semak token CSRF

4 🎜> 6. Rekod masa pelaksanaan

7. Sahkan parameter input

8. Respons cache

3. Gunakan penapis dalam pengawal

dalam PHPixie , anda boleh menghiasi kaedah pengawal anda dengan penapis. Dengan menggunakan penapis, anda boleh melaksanakan blok kod sebelum atau selepas pelaksanaan kaedah pengawal.

Berikut ialah beberapa contoh:

public function actionIndex() {

$this->response->body = 'Hello, World!';

}

akan melaksanakan penapis bernama check_logged_in sebelum kaedah ini:

protected $filters = array(

'check_logged_in'

);

public function actionIndex() {

$this->response->body = 'Hello, World!';

}

penapis fungsi awam_check_log masuk () {

jika (!$this->auth->log_in()){

$this->redirect('login');

}

}


akan melaksanakan penapis bernama record_time selepas kaedah ini:

protected $filters = array(

'record_time'

);

public function actionIndex() {

$this->response->body = 'Hello, World!';

}

public function filter_record_time() {

$time = microtime(true ) - $this->request->time;

$this->log('Masa diambil: '. number_format($masa, 6) .' saat. ');

}

Apabila kaedah ini dilaksanakan, penapis akan dilaksanakan mengikut tertib. Jika pengecualian dicetuskan dalam penapis, pelaksanaan akan terganggu dan respons ralat akan dikembalikan.

4. Buat penapis tersuai

Membuat penapis tersuai adalah sangat mudah, cuma ganti kaedah on() kelas Filtre. Dalam kaedah ini, anda boleh menulis logik tersuai untuk mengendalikan pelaksanaan penapis.

Berikut ialah contoh:

kelas MyFilter melanjutkan PHPixieFiltre {

fungsi awam pada() {

jika ($this->request-> ;param('id') == 0) {

$this->redirect('error');

}

}


}

Sekarang, Penapis tersuai ini boleh digunakan dalam pengawal:

protected $filters = array(

'my_filter'

);

public function actionIndex() {

$this->response->body = 'Hello, World!';

}

Perhatikan bahawa anda mesti menghantarnya dalam kaedah __construct() pengawal Penapis didaftarkan dengan kilang penapis untuk membuat instantiate penapis.

kelas Controller_Index memanjangkan PHPixieController {

fungsi awam __construct($request, $response) {

parent::__construct($request, $response);

$this-> ;filters->register('my_filter', new MyFilter($this->components()));

}


}

Ringkasan

Lulus Menggunakan penapis pengawal, anda boleh dengan mudah melaksanakan pengesahan input, pengesahan, pembersihan data dan fungsi lain dalam PHPixie. Artikel ini menerangkan penapis terbina dalam PHPixie, cara menggunakannya dalam pengawal dan cara menulis penapis tersuai.

Menguasai penggunaan penapis pengawal ialah salah satu bahagian penting dalam pembangunan PHPixie dan boleh meningkatkan prestasi dan keselamatan aplikasi web anda.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan penapis pengawal dalam rangka kerja PHPixie?. 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