Một điểm rất hay của Yii Model


Hôm nay xem overview của Yii Framework, khám phá ra cách tổ chức validation rules của Yii rất là hay. Tôi hay sử dụng CakePHP và không thỏa mãn với cách thiết lập validation rules của nó:

CakePHP

Model::$validate = array(); # là một biến trong một class. Vì thế rất là bất tiện khi muốn có một validation rule tùy biến tham số được (ví dụ password pattern lấy ra từ configuration, hoặc database). Thông thường sẽ phải viết một hàm callback cho cái rule mới này.

Yii

public function rules() {

return array(

array(‘title, content, status’, ‘required’),
array(‘title’, ‘length’, ‘max’=>128),
array(‘status’, ‘in’, ‘range’=>array(1,2,3)), # range này có thể tùy biến được
array(‘tags’, ‘match’, ‘pattern’=>’/^[\w\s,]+$/’,
‘message’=>’Tags can only contain word characters.’),
array(‘tags’, ‘normalizeTags’),
array(‘title, status’, ‘safe’, ‘on’=>’search’),

);

}

Model::rules(); # trả về một mảng các validation rules. Vì vậy rất tiện lợi nếu như chúng ta cần tùy biến tham số từ database.

Một điểm có thể học tập được từ Yii validation rules là cách tổ chức theo nhóm. Bạn thử tưởng tượng bạn đang sử dụng CakePHP để làm điều này? Một table có khoảng 20 fields mà thực hiện validation theo chuẩn CakePHP thì quá oải.

 

One comment

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s