我想问你关于Laravel中的SOLID原则,实际上它是关于单一责任原则的问题。
假设我有 ExcelController 类,我将用户导入数据库。我还有 UserController ,其中我有 createUser 方法。问题是ExcelController无法从UserController扩展,因为它已经从Controller扩展。那么在这种情况下我应该创建UserTrait并在那里放置createUser方法吗?
最好的方法是什么?
答案 0 :(得分:3)
我建议您创建服务User
,并在此服务中包含所有方法。从ExcelController
致电:
(new UserService())->import($parameters);
来自UserController
来电:
(new UserService())->create($parameters);
在laravel中,您可以使用Service Container
并编写如下内容:
$userService = $this->app->make('UserService');
$userService->import($parameters);
// or
$userService->create($parameters);