欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于MVC框架中 模块传参的问题

程序员文章站 2022-04-01 19:16:59
...
1.最近在开发的过程中注意到这样一个现象,通常对数据的CURD操作都会放到模块里面,在控制器调用并传入相应的参数即可!而这种通过形参传递参数的方式我个人是比较反感的!我在想我们能不能在模块里面接收参数在处理呢?这样模块在其他地方就可以随便调用了?而这个模块需要哪些参数自己去了解这个模块就可以了!

大多数人的写法

//模块
public function login($userName,$passWord,$validCode) {
    $param['userName'] = $userName;
    $param['passWord'] = $passWord;
    $param['validCode'] = $validCode;
    return $param;
  }
  
//控制器  
public function test(){
    $userName = $_POST['userName'];
    $passWord= $_POST['passWord'];
    $validCode= $_POST['validCode'];
    $this->login($userName,$passWord,$validCode));
}

我的写法

//模块
public function login() {
    $param['userName'] = $_POST('userName');
    $param['passWord'] = $_POST('passWord');
    $param['validCode'] = $_POST('validCode');
    return $param;
  }
  
//控制器  
public function test(){
    $this->login();
}

可是现在大多数人都是用的第一种写法!我的写法我承认在命令行运行的时候可能会有问题!但我觉得为了代码的简洁我会选择封装一个函数来让我的写法适应各种场景

回复内容:

1.最近在开发的过程中注意到这样一个现象,通常对数据的CURD操作都会放到模块里面,在控制器调用并传入相应的参数即可!而这种通过形参传递参数的方式我个人是比较反感的!我在想我们能不能在模块里面接收参数在处理呢?这样模块在其他地方就可以随便调用了?而这个模块需要哪些参数自己去了解这个模块就可以了!

大多数人的写法

//模块
public function login($userName,$passWord,$validCode) {
    $param['userName'] = $userName;
    $param['passWord'] = $passWord;
    $param['validCode'] = $validCode;
    return $param;
  }
  
//控制器  
public function test(){
    $userName = $_POST['userName'];
    $passWord= $_POST['passWord'];
    $validCode= $_POST['validCode'];
    $this->login($userName,$passWord,$validCode));
}

我的写法

//模块
public function login() {
    $param['userName'] = $_POST('userName');
    $param['passWord'] = $_POST('passWord');
    $param['validCode'] = $_POST('validCode');
    return $param;
  }
  
//控制器  
public function test(){
    $this->login();
}

可是现在大多数人都是用的第一种写法!我的写法我承认在命令行运行的时候可能会有问题!但我觉得为了代码的简洁我会选择封装一个函数来让我的写法适应各种场景