Php 通过继承实现Laravel公共服务
问题 我有一组控制器,它们使用一组特定的服务。我想知道是否可以/正确地利用继承来避免我不得不一直将它们注入控制器。这就是我计划要做的Php 通过继承实现Laravel公共服务,php,inheritance,laravel-5,Php,Inheritance,Laravel 5,问题 我有一组控制器,它们使用一组特定的服务。我想知道是否可以/正确地利用继承来避免我不得不一直将它们注入控制器。这就是我计划要做的 class MasterController extends controller{ public function _construct(){ $this->userData = App::make(UserService::class) $this->fooData = App::make(F
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();
}
}
这是个好主意吗?这真是个坏主意吗?为什么?我想这可能会使我不必一次又一次地向控制器中注入公共服务
谢谢 问题: 我想知道是否可以/正确地利用继承来避免我不得不一直将它们注入控制器 回答:
- 源代码存储库是一种文件归档和web托管设施,其中包含大量源代码,用于软件或应用程序 网页,公开或私下保存。他们经常 用于开源软件项目和其他多开发人员 处理各种版本的项目
嗨,萨加尔,谢谢你的评论。我熟悉存储库模式,并且在我的服务层中实际使用了它。我使用的流程是controller->service->repo。在这个服务中,我做任何需要的业务逻辑,这样我就可以保持我的控制器精简,我的repo只用于DB活动。为什么不使用traits来创建所需功能的组合呢?除了使用继承之外,这是添加它的另一种方式,好的一面是,您不会因为不能同时从多个类继承而限制组合所需的功能。我考虑过这一点,但它感觉不正确,因为trait是用于需要一组特定方法的情况。这更多的是为了包含其他类,其目的只是为了不让所有的控制器构造函数都被疯狂地填充。