У меня есть класс UserRepository
class UserRepository
{
public function getUsersByCompany(Company $company)
{
}
}
Для использования этого класса в контроллере я использую Dependency Injection
class UserController extends Controller {
public function __construct(UserRepository $repository)
{
$this->repository = $repository;
}
public function index(Company $company)
{
retrurn $this->repository->getUsersByCompany($company);
}
}
Также я могу использовать Binding
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
}
public function register()
{
$this->app->singleton('user-repository', function ($app) {
return $this->app->make(UserRepository::class);
});
}
}
class UserController extends Controller {
public function index(Company $company)
{
retrurn app('user-repository')->getUsersByCompany($company);
}
}
Я не понимаю, какой путь лучше?Чему я должен отдавать приоритет?