我还有一个Home前台模块,Admin后台模块,Api模块(给手机登客户端调用数据用,返回的都是jason数据),还有其他一些具体功能模块(如News新闻资讯模块,Business团购优惠等商业模块,Forum论坛模块等等等);
现在我在Ucenter模块中有个User模型和相对于的User验证器,我现在有个更新用户数据的方法updateInfo,需要用到验证器来验证,Home前台模块,Admin后台模块,Api模块的控制器中都需要调用这个方法,都出现以下问题:
类不存在 :app\common\validate\User
代码如下
$user = new UserModel();
$id = $user->validate(true)->allowField(['mobile','password','nickname'])->save($data);
经过调试发现,验证器的路径不对,每次都是控制器所在的模块下去找验证器,而不是Ucenter模块下去找。如我在Home前台访问,找的是app\Home\validate\User,找不到使用默认去了app\common\validate\User
这样的话,要么我把验证器全部放到Common模块下面去。要么每个需要用的模块如Home,Admin,Api下面都去创建User模型和User验证器,这样的话,代码都不能复用,以后维护是个大麻烦。我现在有前台,后台,API三个模块都有访问控制器,这么样才能最大化代码复用?
因为这个验证器问题,我不得不重新考虑整个系统的架构了,对于这么一个既包括前台,后台,API,有包括新闻,优惠,论坛等众多功能的系统,要这么架构?
最佳答案
