Service Container と は、 ソース コードの依存関係と構造を効率的に管理するのに役立つ Dependency Injection 2 つの重要な概念です。 Laravel 以下に、さまざまなシナリオでの使用方法を示します。
SUの使用 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 とを 使用する Dependency Injection と、 Laravel 依存関係とソース コード構造を効果的に管理するのに役立ちます。 これらの原則を適用すると、アプリケーションの開発中に、柔軟で保守性が高く、簡単に拡張できるコードを作成できます Laravel。