Rangka kerja Yii ialah rangka kerja PHP berasaskan komponen berprestasi tinggi, boleh skala, yang disertakan dengan sejumlah besar alatan dan fungsi yang berkuasa, menjadikannya mudah untuk membina aplikasi web yang cekap. Salah satu komponen yang sangat penting ialah pengesah, yang digunakan terutamanya untuk memastikan ketepatan data. Dalam artikel ini, kami akan mendalami pengesah dalam rangka kerja Yii untuk memahami tujuannya, cara menggunakannya dan cara ia dilaksanakan.
1. Apakah itu pengesah
Pengesah merujuk kepada modul berfungsi yang digunakan untuk mengesahkan kesahihan data. Dalam rangka kerja Yii, terdapat terutamanya dua jenis pengesah: pengesah terbina dalam dan pengesah tersuai. Pengesah terbina dalam menyediakan beberapa peraturan pengesahan biasa, seperti keunikan, medan yang diperlukan, panjang, nombor, dsb. Pengesah tersuai ialah peraturan pengesahan yang pembangun boleh tulis sendiri, dan boleh direka bentuk dan dibangunkan mengikut keperluan sebenar projek. Menggunakan pengesah boleh mengurangkan beban kerja pembangun dalam menulis kod pengesahan dan meningkatkan kecekapan pembangunan dengan berkesan.
2. Tujuan pengesah
Dalam aplikasi web, kesahihan data adalah sangat kritikal. Jika data yang salah wujud dalam aplikasi, ia menjejaskan pengalaman pengguna, keselamatan data dan integriti data. Peranan pengesah adalah untuk memastikan kesahihan data dan menghalang pembangun daripada membuat kesilapan atau pengguna daripada sengaja mengganggu data. Menggunakan pengesah secara berkesan boleh menghalang isu keselamatan seperti suntikan SQL, serangan XSS, serangan CSRF, dsb., dan juga boleh membantu pembangun meningkatkan keteguhan dan kebolehselenggaraan kod mereka.
3. Cara menggunakan validator
Dalam rangka kerja Yii, menggunakan validator adalah sangat mudah. Anda hanya perlu mentakrifkan kaedah rules() dalam model dan nyatakan peraturan dan mesej ralat yang perlu disahkan. Berikut ialah kod contoh mudah:
public function rules() { return [ [['username', 'password'], 'required', 'message' => '必填项'], ['email', 'email', 'message' => '邮箱格式不正确'], ['username', 'unique', 'targetClass' => User::class, 'message' => '用户名已经被占用'], ['password', 'string', 'min' => 6, 'message' => '密码长度不能少于6位'], ['age', 'number', 'max' => 100, 'message' => '年龄不能超过100岁'], ]; }
Dalam kod di atas, kami mentakrifkan beberapa peraturan pengesahan asas, seperti medan yang diperlukan, format e-mel, keunikan, panjang rentetan, nombor, dsb. Setiap peraturan mempunyai mesej ralat yang sepadan Apabila pengesahan data gagal, mesej ralat yang sepadan akan dikembalikan untuk memudahkan pembangun menyelesaikan masalah dan menyelesaikan masalah dengan cepat.
4. Pengesah tersuai
Selain pengesah terbina dalam yang disediakan dalam rangka kerja Yii, pembangun juga boleh menulis pengesah mereka sendiri mengikut keperluan sebenar. Berikut ialah contoh mudah pengesah tersuai:
class TelValidator extends Validator { public $message = '无效的电话号码格式'; public function validateAttribute($model, $attribute) { $value = $model->$attribute; if (!preg_match('/^(0d{2,3}-d{7,8})$|^1[3-9][0-9]{9}$/', $value)) { $this->addError($model, $attribute, $this->message); } } }
Dalam kod di atas, kami mentakrifkan pengesah tersuai untuk TelValidator, yang digunakan untuk mengesahkan bahawa format nombor telefon adalah betul. Apabila format nombor telefon tidak betul, mesej ralat "Format nombor telefon tidak sah" dikembalikan. Dengan cara ini kita boleh mengesahkan nombor telefon dengan mudah.
5 Prinsip pelaksanaan pengesah
Prinsip pelaksanaan pengesah dalam rangka kerja Yii adalah sangat mudah. Apabila kita memanggil kaedah save() ActiveRecord, rangka kerja Yii secara automatik akan memanggil kaedah validate() validator dan menghantar data yang perlu disahkan kepada kaedah validate() untuk semakan. Jika pengesahan data gagal, maklumat ralat yang sepadan akan disimpan dalam atribut $model->errors untuk dilihat dan diperbaiki oleh pembangun. Jika pengesahan data berjaya, operasi seterusnya akan diteruskan, seperti memasukkan, mengubah suai, memadam data, dsb.
6. Ringkasan
Dalam artikel ini, kami mempunyai perbincangan mendalam tentang pengesah dalam rangka kerja Yii dan memahami tujuan, penggunaan dan prinsip pelaksanaannya. Dengan menggunakan pengesah, kami boleh memastikan ketepatan dan keselamatan data dengan berkesan, meningkatkan kecekapan pembangunan dan keteguhan kod. Pada masa yang sama, kami juga memperkenalkan kaedah pembangunan pengesah tersuai Kami berharap pembaca akan memperoleh sesuatu dan dapat menggunakan pengetahuan ini dalam projek sebenar untuk membangunkan aplikasi web yang lebih cekap, selamat dan boleh dipercayai.
Atas ialah kandungan terperinci Pengesah dalam rangka kerja Yii: memastikan ketepatan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!