多端登录的代码设计问题
最近做一个人项目分为两个模块,PC端和移动端(具体针对wap,ios跟Android可用原生的webview/腾讯的X5浏览服务
嵌套HTML5),用的是 nwidart/laravel-modules
来区分模块的,可是这个库是做完移动端才加上去的,所以真正用上这个库的只有PC端,移动端的登录就直接放在了app\Http\Controllers\Auth
下面,本人愚钝,当初觉得PC端的登录业务跟移动端的业务一样,所以直接将PC端的登录路由指向app\Http\Controllers\Auth\AuthController
。
路由文件就放在`Modules\Pc\Http\routes.php`
Route::post('auth/login', 'App\Http\Controllers\Auth\AuthController@ajaxPostLogin');
这导致解耦性很差,使用action
获取路由时出错,如在子域名下访问 em>http://m.example.com/</em>使用<code>action('foo@bar')</code会直接访问到 http://www.example.com/foo/bar
个人反省思路
处理登录后的具体业务可以放到 Services
里, 分开PC端跟移动端的Controller
实现定义好的接口(具体实现可依赖注入Services
),路由指向各自的Controller
。
框架版本Laravel 5.1
想请教下社区里的大神还有没有更好的办法,本人设计模式比较弱
推荐文章: