在拉拉维尔固体

时间:2017-08-29 14:26:54

标签: php laravel

我想问你关于Laravel中的SOLID原则,实际上它是关于单一责任原则的问题。

假设我有 ExcelController 类,我将用户导入数据库。我还有 UserController ,其中我有 createUser 方法。问题是ExcelController无法从UserController扩展,因为它已经从Controller扩展。那么在这种情况下我应该创建UserTrait并在那里放置createUser方法吗?

最好的方法是什么?

1 个答案:

答案 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);