Php 在类内处理验证
我试图创建一个类来处理来自其他类的所有错误,并将它们存储到会话中 它看起来像这样:Php 在类内处理验证,php,class,Php,Class,我试图创建一个类来处理来自其他类的所有错误,并将它们存储到会话中 它看起来像这样: class ErrorMessages { public function add { add message to _SESSION } public function display() { display _SESSION messages } } 哪种方法是将此与我的其他类集成的最佳方法 假设我有一个类用户: class User {
class ErrorMessages {
public function add {
add message to _SESSION
}
public function display() {
display _SESSION messages
}
}
哪种方法是将此与我的其他类集成的最佳方法
假设我有一个类用户:
class User {
function login() {
if(everything is ok) {
login
add ok message to _SESSION
}
else {
add error to _SESSION
}
}
}
我的用户类应该扩展ErrorMessages吗
class User extends ErrorMessages {
bla bla bla
}
我应该将ErrorMessages对象传递给用户类构造函数吗
$error = new ErrorMessages();
class User {
function __construct($error) {
}
}
我应该在我需要的每个类中创建一个ErrorMessages obj吗
__
最佳做法是什么?我计划在验证数据的每个类中使用ErrorMessages类,并使用它从前端视图访问会话消息
是否有其他处理验证的实践?我不知道这里是否有一个最佳实践,但一个好的实践是:
- 创建一个可以收集消息的类或接口,比如ErrorMessages类
- 将该类的实例传递给其他类
- 创建可以读取错误消息并显示它们的其他类
从ErrorMessages扩展不是一个好主意。将有很多基本功能,构建包含所有这些信息的基类是不可管理的。如果您想要一个将元素保存到会话的类,可以使用一个带有静态方法的类:
ErrorMessagesClass::storeInSession("$message");
ErrorMessagesClass::getMessages();
这是你现在需要的。
但取决于你将来想要什么,还有其他的可能性
带有数据映射器的错误模型对象有助于保持适应性。
一个对象用于管理信息,另一个对象用于存储信息。最佳做法是为您的应用程序提供足够灵活和安全的任何解决方案。 虽然在会话中存储验证错误的想法是值得怀疑的,因为它实际上只是另一种形式的全局状态,并且会使测试复杂化。 给猫剥皮的方法有很多: 处理模型中的验证并存储错误 在模型上的散列(PHP中的数组)中。如果验证失败,则将模型传递回呈现错误消息的视图。 可以创建一个存储在会话中的表单,通知用户该表单无效 采用另一种方法,将输入参数绑定到处理验证然后可以呈现表单的
FormBuilder
类