账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于PHP实战中,项目架构,我想请教一下各位!
    29
    0

    1,简单介绍一下,我现在理解的。我们现在做项目,比如商场。我们虽然是采用的MVC模式进行开发,但感觉其中让我有些迷茫的是,感觉像不是MVC。而且,我们公司的同事,都是这样开发的,让我觉得,我们好闭关锁国。所以想请教一下,各位PHP们的看法。

    :接下来,我就用代码来描述一下。

    //user.php[controller] -- 用户控制器
    
    class user {
    
        //获取用户信息[接口,或者是控制器入口]
        public function getUserInfo(){
            $mUser = new UserModel();
            $tUser = $mUser->getInfo($this-userId);
            
            echo json_encode($tUser);//输出信息
        }
        
        
        
        //复杂一点的控制器 举例用下单。
        public function order(){
            $product = I('product_id');//产品id
            $address = I('address_id');//收获地址id
            $coupon = I('cuopon');//红包id
            $bouns = I('bouns');//代金卷id
        
            
            #检查produt是否存在
            //code .....
            
            #检查红包是否合理
             //code .....
             
            #检查代金卷是否合理
             //code .....
             
            #检查地址是否合理
             //code .....
             
            #获取运费
             //code .....
             
            #操作订单数据
             //code .....
             
            #保存订单到数据库
             //code .....
             
            
            echo '成功';
            
            //最后,我想表达的是,如果业务逻辑较多,我们的操作是,
            //会把这一系列的业务逻辑都放在控制器里面。这种有问题没???,我总觉得,这样做很复杂。
        }
    
    }

    模型:

    //user 模型 [tp为例]
    class UserModel{
    
        public function getInfo($userId){
        
            //我们的理解是,将与数据库模型操作的,封装起来。
            $tA = M('user')->where(array('user_id'=>$userId))->find();
            
            //下面,还可以进行一些数据的操作
            
            return $tA;
        }
        
        //复杂一点的模型
        public function getOrderInfo($id = '', $code = '',$userId = ''){
        
            //这方法的总点是,我们再开发中,总是会先像第一个方法一样,
            //写的时候很简洁,看起来就是单一职责,
            //写到后面,你发现那个方法,其实可以加个参数,就可以重用了。
            //然后到最后,你就晕了。这个方法,到底用来干嘛的,
            //问:这种一个方法的设计原则,应该是单一职责吧,如果需要重用这种方式是否合理,
            //应该怎么来设计比较好?
            
            
            
        }
    }
    //最后用一些方式来标识设计的架构
    
    C - controller
    M - model
    
    
    例如一个操作
    请求接口 ->  C   -> 调用M的方法1
                    -> 调用M的方法2
                    -> 调用M的方法3
                    -> 调用M的方法4
                    -> 调用M的方法5
                    -> 调用M的方法6
                    ->输出结果
    //这是公司同事的架构,他们总觉得,我的模型,只要封装好方法就行了。然后控制器,可以一直这样处理业务逻辑
    
    //我的问题是,这种看起来是没有错,但阅读起来,难度相当大,因为每个方法之间,依赖有点多(指M的方法1...6)
    //如果你增加,或者减少一个M方法,那你就要阅读整个业务逻辑代码,好复杂。
    //最后,
    //我的理想业务逻辑是
    
    C ->  M方法1 -> M1方法1->M2方法1
      ->  M2方法1 ->M1方法1->M2方法3
    
    
    //我想的是,能不能做到,一个业务逻辑,看起来每一块都是单一职责,都有一个入口,和一个出口,

    不知道我表达清楚没,哈哈哈。
    总结一些吧。我想学习一下大家开发项目的架构设计,关于MVC模式的架构。请大家和我一起分享一下。好吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 回忆像牢笼 普通会员 1楼

      当然可以,我很乐意帮助你。PHP项目架构可以分为以下几个部分:

      1. 控制器:控制器是程序的最小单位,负责处理HTTP请求和响应。PHP控制器通过HTTP请求接收来自客户端的请求,然后根据请求的类型和参数,执行相应的操作。

      2. 模型:模型是数据库中的数据,它定义了如何处理和操作数据。PHP模型可以使用各种数据库操作,如查询、插入、更新和删除数据。

      3. 视图:视图是用户看到的数据。PHP视图负责生成HTML页面,将数据呈现给用户。

      4. 配置:配置是用于配置应用程序的参数。PHP配置文件用于设置应用程序的运行环境,如主机名、端口号、数据库连接信息等。

      5. 服务层:服务层是应用程序的后端部分,负责处理用户请求,生成响应。PHP服务层可以使用各种框架,如Laravel、Symfony等。

      6. 数据库连接:数据库连接是应用程序与数据库交互的桥梁。PHP可以通过mysqli、PDO、PDO_MySQL等库来连接数据库。

      7. 文件和目录管理:文件和目录管理用于管理应用程序的文件和目录结构。PHP可以通过mkdir、rmdir、copy、rename等函数来创建、删除和重命名文件和目录。

      8. 错误处理:错误处理是应用程序中防止错误发生的重要部分。PHP可以通过try-catch语句来处理错误。

      希望这些信息对你有所帮助。如果你有具体的问题,欢迎继续提问。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部