Php Laravel DependencyInjection是这样的吗;好",;怎么办?
为了处理我的应用程序的一些逻辑,我在Php Laravel DependencyInjection是这样的吗;好",;怎么办?,php,laravel,dependency-injection,Php,Laravel,Dependency Injection,为了处理我的应用程序的一些逻辑,我在App/Services/CarsService.php中创建了一个服务 我通过DependencyInjection将此服务注入控制器,如下所示: carscocontroller.php <?php namespace App\Http\Controllers; use App\Services\CarsService; class CarsController extends Controller { /** @var CarsSe
App/Services/CarsService.php
中创建了一个服务
我通过DependencyInjection将此服务注入控制器,如下所示:
carscocontroller.php
<?php
namespace App\Http\Controllers;
use App\Services\CarsService;
class CarsController extends Controller
{
/** @var CarsService $carsService */
private $carsService;
/**
* Create a new controller instance.
*
* @param CarsService $carsService
*/
public function __construct(CarsService $carsService)
{
$this->carsService = $carsService;
}
这使我的控制器保持干净,我的逻辑在一个服务中是分离的,对我来说似乎非常好和干净
但我的问题是,在拉雷维尔这样做是否不好?我想可能会有一种更“Laravel-y”的方法来处理这个问题。你不想为此使用服务。如果您使用的是雄辩的语言,请注入并使用模型。如果您使用的是查询生成器、原始查询或API,请使用存储库。例如:
public function __construct(Car $car)
{
$this->car = $car;
}
$this->car->getByBrandAndType($brand, $type);
如果你想了解,它绝对是一个在任何应用程序中都可以使用的好工具。如果依赖项注入被认为是框架内的一种糟糕做法,那么你不应该使用该框架。正如您提到的,这有助于保持代码的整洁,并允许您创建可组合的类和服务。这是一个最佳实践,无论框架是什么,无论语言是什么。@unef我对Laravel是相当陌生的,所以我不确定这是否被视为不好的实践,我想知道我所做的是否是“最好/最干净”的方式。Laravel有一个很大的社区,是最大的框架之一,所以我认为有一个更好的方法可以用Laravel框架的理念来处理这个问题。我不使用Laravel,所以我不能说框架中是否有专门用于依赖注入的东西。虽然,从面向对象的角度来看,这是应该如何处理依赖项注入的。它干净,易于阅读和组合。你还想要什么在Laravel中有一种叫做
ServiceProviders
的东西,我可能认为这是处理DI的更好方法,但我不确定。嗯,存储库是一种特定的服务模式,所以我看不出问题出在哪里。我认为问题更多的是如何处理Laravel中的依赖注入,而不是他是否需要服务或模型。嘿,谢谢你的回答,我在我的服务中做了更复杂的逻辑getCars()只是一个简单的例子。正如@unre所说,问题更多的是关于如何在Laravel中处理依赖项注入。@user3652775如果有一些业务逻辑,那么当然,使用服务。
public function __construct(Car $car)
{
$this->car = $car;
}
$this->car->getByBrandAndType($brand, $type);