关于PHP的一般MVC问题&;Magento验证
我已经使用Magento&PHP CodeIgniter MVC大约4个月了。我有一个特殊的问题,知道在哪里设置CODENITER和MaGeNTO的验证逻辑,只有当我考虑遵循MVC架构到它的真实本质和非常适当的语义方式。 首先,我将从Magento开始: 假设我在Magento中有一个“关于PHP的一般MVC问题&;Magento验证,php,codeigniter,magento,weblogic,Php,Codeigniter,Magento,Weblogic,我已经使用Magento&PHP CodeIgniter MVC大约4个月了。我有一个特殊的问题,知道在哪里设置CODENITER和MaGeNTO的验证逻辑,只有当我考虑遵循MVC架构到它的真实本质和非常适当的语义方式。 首先,我将从Magento开始: 假设我在Magento中有一个“作业”模块,它是关于球员和比赛的。在这个“分配”模块的控制器中,我有3种操作方法,我需要检查和验证以下内容:- 玩家ID 比赛ID 在“赋值”模块的块类中,以及在3个动作方法中,也需要进行此验证。 因此,我的问题
作业
”模块,它是关于球员和比赛的。在这个“分配
”模块的控制器中,我有3种操作方法,我需要检查和验证以下内容:-
赋值
”模块的块类中,以及在3个动作方法中,也需要进行此验证。因此,我的问题是,我应该在这个模块的控制器类还是模型类中编写上述两点的验证,因为我需要在Block类和Controller类中使用验证 在这种情况下,实际的MVC体系结构有什么建议 如果可能,请提供代码片段,突出显示实现的逻辑 关于CodeIgniter或任何其他PHP MVC框架: 由于任何使用会话的验证都是特定于页面的&因为CodeIgniter中没有块的概念,所以通常会话验证和会话变量的设置只在Controller类中完成 因此,我在这方面的疑问是,这是一种正确的方法&在什么情况下,我应该在模型类中放置会话和会话验证的设置器 再说一次,在这种情况下,实际的MVC架构意味着什么 如果可能的话,请再次提供代码片段,突出显示实现的逻辑 关于这件事我真的很困惑&我有点困在这里了。请帮我进来。非常感谢任何解决方案/帮助。非常感谢 编辑:-
如果可能,请提供一些Magento代码,说明如何创建和编写正确的验证,以及抛出异常,以及在模型方法中定义的实际异常消息?模型层应该能够保持其自身的一致性,因此无论其他决定如何,您应该在模型层中包含验证。为了帮助用户(并提供更多有用的验证消息),您可能还希望在控制器级别执行一些验证 这种方法的优点是,假设您维护模型层,则流氓控制器不可能设置坏数据。这就涉及到了第二个问题,对于这个问题,Magento的答案是使用一个对象来管理部分会话中的数据,并在进入会话的过程中验证该数据
顺便说一下,为了处理块/视图中的验证,请考虑使用这样的验证。它有自己的缺陷,但通常会将您必须编写的验证代码数量降至最低:
// make sure that the below returns the relevant assignment model class
$assignment = $this->getAssignment(); // or get it via a session, or helper, or what have you.
$player = getChosenPlayer();
try {
$assignment->setPlayer($player); //throws exception when invalid
... do more ...
$assignmnent->save();
} catch(SomeException $e) {
addValidationError($e->getMessage());
renderPageAgain();
}