Php 相互作用;脂肪模型“;和控制器
我试图应用“fat模型”原理,但我不知道如何在“fat模型”和控制器之间正确地进行交互 假设我们有Php 相互作用;脂肪模型“;和控制器,php,model-view-controller,Php,Model View Controller,我试图应用“fat模型”原理,但我不知道如何在“fat模型”和控制器之间正确地进行交互 假设我们有模型用户,控制器用户和模型用户资源(与数据库交互) 那么,这个代码有什么问题? 模型可以:抛出Acl异常,如果发生一些错误则返回表单实例,如果成功则返回整数或任何其他异常。 我的问题是:模型以这种方式返回错误是否正确?最佳做法是什么?这会不会是未来的麻烦事? 谢谢大家! 所有编程的东西在未来都会让人头疼。唯一的问题是学位。你可能会找到相关的答案。@tereško,谢谢你的指点!关于第一个链接-我是话
模型用户
,控制器用户
和模型用户资源
(与数据库交互)
那么,这个代码有什么问题?
模型可以:抛出Acl异常,如果发生一些错误则返回表单实例,如果成功则返回整数或任何其他异常。
我的问题是:模型以这种方式返回错误是否正确?最佳做法是什么?这会不会是未来的麻烦事?
谢谢大家! 所有编程的东西在未来都会让人头疼。唯一的问题是学位。你可能会找到相关的答案。@tereško,谢谢你的指点!关于第一个链接-我是话题的发起者,我真的很感谢你的回答!:)在ACL中,我更喜欢将模型(当然是方法)作为资源,而不是控制器的操作。问题不是关于这个。关于“胖模型”和“瘦控制器”之间交互的正确方式是什么的问题。对不起,我说的是英语。所以你现在已经部分地将控制器逻辑移到了模型中。正因为如此,你才称之为胖模特?您为什么不将其称为带有半个控件的FATModel(使用静态共享服务注册AthasAnyThings,但不使用ViewTemplateThingy;)呢?
class Model_User
{
public function register($data, $sendRegistrationEmail = false) {
//checking ACL rules
if (!$this->getAcl()->checkAcl('registration')) {
throw new Acl_Exception();
}
//validating form
$F = new Form_User_Registration($data);
if (!$F->isValid()) {
return $F;
}
//inserting data and returning new user's id
$Resource = new Model_User_Resource();
$userId = $Resource->insert($data);
return $userId;
}
}
class Controller_User
{
public function registrationAction() {
$post = $this->getRequest->getPost();
$Model = new Model_User();
$result = $Model->register($post);
if ($result instanceof Form_User_Registration) {
//model has returned Form instance
return new Response(json_encode($result->getErrors()));
}
//registration was successful and we're doing some kind of redirect here, I suppose
}
}