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();
}
可是现在大多数人都是用的第一种写法!我的写法我承认在命令行运行的时候可能会有问题!但我觉得为了代码的简洁我会选择封装一个函数来让我的写法适应各种场景
你这样写有一个很明显的问题:
如果你的模块的方法要
复用
,又不是用的普通的请求方式,例如我想添加一个订单,调用方法是模块的addOrder
,但是后这时候我通过其他方式添加,例如excel文件上传
,这时候调用模块的addOrder
方法,按照你的模块方法是没法添加的,因为这些订单信息是上传时候解析时候生成的,并不是放在$_POST
里面的。