Php 相互作用;脂肪模型“;和控制器

Php 相互作用;脂肪模型“;和控制器,php,model-view-controller,Php,Model View Controller,我试图应用“fat模型”原理,但我不知道如何在“fat模型”和控制器之间正确地进行交互 假设我们有模型用户,控制器用户和模型用户资源(与数据库交互) 那么,这个代码有什么问题? 模型可以:抛出Acl异常,如果发生一些错误则返回表单实例,如果成功则返回整数或任何其他异常。 我的问题是:模型以这种方式返回错误是否正确?最佳做法是什么?这会不会是未来的麻烦事? 谢谢大家! 所有编程的东西在未来都会让人头疼。唯一的问题是学位。你可能会找到相关的答案。@tereško,谢谢你的指点!关于第一个链接-我是话

我试图应用“fat模型”原理,但我不知道如何在“fat模型”和控制器之间正确地进行交互

假设我们有
模型用户
控制器用户
模型用户资源
(与数据库交互)

那么,这个代码有什么问题? 模型可以:抛出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

    }

}