Trong khung công tác CakePHP, các quy tắc xác thực là một thuộc tính của mô hình. Đó là, không quan trọng dữ liệu đến từ đâu: khi bạn muốn viết nó trong một mô hình, nó sẽ phải vượt qua xác nhận.Xác nhận là thuộc tính của biểu mẫu
Thay vì trong symfony, bạn chỉ định quy tắc xác thực cho mỗi biểu mẫu. Vì có thể có nhiều hơn một biểu mẫu cho mỗi mô hình (và các biểu mẫu có thể liên quan đến dữ liệu từ các mô hình khác nhau), kết quả là dữ liệu cho một số mô hình có thể phải vượt qua các bộ lọc khác nhau, theo biểu mẫu của nó.
Tôi hiểu rằng điều này đôi khi có thể hữu ích và thực tế CakePHP cung cấp các phương thức để xác định các quy tắc xác thực khác nhau nếu bạn muốn. Nhưng đây là ngoại lệ, không phải là quy tắc. Dường như với tôi rằng việc thiết kế theo cách khác sẽ mở ra cánh cửa cho các lỗi, nơi bạn cập nhật các quy tắc xác thực của mình, nhưng quên kiểm tra tất cả các biểu mẫu.
Mặt khác, tôi chắc chắn rằng Fabien Potencier thông minh hơn tôi, và có lẽ đã đặt một số suy nghĩ vào thiết kế này. Vì vậy, câu hỏi mhy là:
Lý do chính đáng để xác thực mỗi biểu mẫu (như một quy tắc, không phải là ngoại lệ)?
Tại sao lưu ý lại? Tôi nghĩ rằng đây là một câu hỏi hợp pháp về một sự lựa chọn thiết kế. : -? – Andrea
"Dường như với tôi rằng việc thiết kế theo cách khác sẽ mở ra cánh cửa cho các lỗi, nơi bạn cập nhật các quy tắc xác thực của mình, nhưng quên kiểm tra tất cả các biểu mẫu". Nếu tôi hiểu mối quan tâm của bạn một cách chính xác, bạn có thể tránh điều này bằng cách tạo các lớp con của biểu mẫu của bạn và chỉ thay đổi các trình xác thực cụ thể cho lớp con đó. Ví dụ, để giới hạn email đến một miền cụ thể cho một kiểu người dùng cụ thể, như trong ví dụ của circusdei, tạo 'lớp UserRegistrationForm mở rộng UserForm' và thay thế trình xác thực 'toàn cầu' bằng một trình cụ thể. – yitznewton