题.
我有一堆使用某种服务的控制器.我想知道是否有可能/利用继承来保护我不必一直将它们注入控制器.这就是我计划做的事情.
class MasterController extends controller{
public function _construct(){
$this->userData = App::make(UserService::class)
$this->fooData = App::make(FooService::class)
}
}
class UserController extends MasterController {
public function __construct(BashService $bashService){
parent::__construct();
$this->bashData = $bashService;
}
public function someFunction(){
$something = $this->userData->doUserSomething();
}
}
这是一个好主意吗?一个非常糟糕的主意吗?为什么或者为什么不?我认为这可能使我不必一次又一次地将常用服务注入控制器.
谢谢!
解决方法:
题:
I was wondering if it is possible/right to utilize inheritance to save me from having to inject them into controllers all the time.
回答:
>是的,这是可能的,并且利用继承是正确的
在此之后,您将保持控制器清洁,这意味着您
可以在你的控制器中有功能,但功能将导致
从不同的类实现或继承的不同函数.
题:
Is this a good idea to do?
回答:
>显然,如上所述,这是一个好主意
保持控制器清洁是可以遵循的最佳实践
因为你的方法将与业务逻辑分开
你实现所有的提取和发布和计算以及什么
因为您的控制器是干净的并且所有方法都是动作
从具有准确反应的不同类别返回,例如(真或假)
假).
题:
Why or why not?
回答:
>由于我已经解释了大部分内容,我还想进一步
建议您基本上由存储库模式
word存储库我的意思是:
>源代码存储库是一个文件存档和Web托管设施,其中包含大量源代码,用于软件或用于
网页,公开或私下保存.他们经常
由开源软件项目和其他多开发人员使用
处理各种版本的项目.
在laravel中,您可以按照存储库模式来编写项目代码
这是目前最好的做法.