Service Container 使用 指南 Dependency Injection _ Laravel

Service Container 和 Dependency Injection 是两个重要的概念, Laravel 可帮助您有效地管理依赖项和源代码的结构。 以下是不同场景下的使用方法:

苏星 Service Container

它 Service Container 有助于 Laravel 灵活地管理和提供对象。 以下是如何使用 Service Container:

注册对象: 使用该 bind 方法将对象注册到 Service Container.

app()->bind('userService', function() {  
    return new UserService();  
});  

访问对象: 当您需要使用对象时,可以 Service Container 使用注册的名称从 中检索它。

$userService = app('userService');

使用 Dependency Injection

Dependency Injection 减少依赖性并使代码更具可读性。 使用方法如下 Dependency Injection:

通过 声明依赖关系 Constructor: 在需要使用依赖关系的类中,通过 constructor. Laravel 初始化对象时会自动注入依赖项。

class UserController extends Controller  
{  
    protected $userService;  
  
    public function __construct(UserService $userService)  
    {  
        $this->userService = $userService;  
    }  
}  

通过方法注入依赖项 Setter: 您还可以通过 setter 方法注入依赖项。 Laravel 会自动调用这些方法来注入依赖。

class UserController extends Controller  
{  
    protected $userService;  
  
    public function setUserService(UserService $userService)  
    {  
        $this->userService = $userService;  
    }  
}  

结论

利用 Service Container and Dependency Injection in Laravel 可以帮助您有效地管理依赖关系和源代码结构。 通过应用这些原则,您可以在应用程序开发过程中创建灵活、可维护且易于扩展的代码 Laravel。