为了账号安全,请及时绑定邮箱和手机立即绑定

php写法问题

php写法问题

PHP
慕妹3242003 2019-03-18 18:03:51
我想问下大家代码平时是怎么拆分的。比如一个表单,传递给控制器,控制器执行保存、修改,表单需要进行逻辑判断。一般大家是怎么拆分的。以下是我知道的几个方法:1.全部写控制器,一条线写完;2.一个控制器调用一个model方法,model调用多个其它方法得到最后结果,最终返回给控制器3.一个控制器根据业务流程,一个步骤调用一次model方法,最终完成。那种方法合适
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

举个例子,具体的业务逻辑肯定更复杂;

class Response {
    public static function send($data) {
        echo json_encode($data);
    }
}
class Request {
    public static function post($key = null) {
        return isset($_POST[$key]) ? $_POST[$key] : $_POST;
    }
}
class Controller {
    public function create() {
        $data = Request::post();
        $result = (new Model())->create($data);
        Response::send($request);
    }
}
class Model {
    public function create($data) {
        // 开启事务
        try {
            (new CommentModel())->create($data['member_id'],$data['content']); // 保存评论
            (new IntegralModel())->update($data['member_id'],5); // 更新积分
            // 提交事务
        } catch(Exception $e) {
            // 事务回滚
        }
       
    }
}
class CommentModel {
    public function create($member_id,$content) {
        throw new Exception('保存失败');
    }
}
class IntegralModel {
    public function update($member_id,$integral) {}
}

主要想表达一个什么意思呢?程序逻辑尽量清晰,每个方法该干什么就尽量把职责进行区分,不要放到一起,代码又长又臭。

而且,不同的业务逻辑还会运用到设计模式。

查看完整回答
反对 回复 2019-03-18
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

所以,这就是为什么大家现在用的框架不仅仅只是个MVC了,慢慢的使用了cache层,service层,依赖注入等等理念来解决问题,JS的趋势也从MVC走向了MVVM。

查看完整回答
反对 回复 2019-03-18
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

MVC的整体设计方案。我个人在实际开发的过程中是在controller和model层之间增加了一个service层,主要做业务逻辑代码。

1.在controller写model的操作绝对是不合适的。
2.model封装一些简单的数据操作。
3.在service写业务逻辑代码,controller层调用service,service层的代码复用率就会变高。
4.整体解耦,有利于代码的整洁和维护。
5.model层可以做一些数据表相关的其他封装。

当然你可以有其他的结构思路,这边我只是提供了自己的理解。

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 394 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号