Laravel を使用してアプリケーション を構築する Dependency Injection

この記事では、依存関係を管理し、より保守しやすいソース コード構造を作成するために を使用して Laravel アプリケーションを構築する手順を説明します Dependency Injection。 店舗内の商品リストを管理する簡単な例を作成します。

ステップ 1: 準備

まず、 Laravel コンピュータにインストールされていることを確認してください。 Composer 新しいプロジェクトを作成するために 使用できます Laravel。

composer create-project --prefer-dist laravel/laravel DependencyInjectionApp

プロジェクトを作成した後、プロジェクト ディレクトリに移動します。

cd DependencyInjectionApp

ステップ 2: 作成 Service して Interface

service まずは商品リストを管理するため の を作成しましょう。 interface これを実装する と クラスを 作成します interface。

ファイルを作成します app/Contracts/ProductServiceInterface.php

<?php  
  
namespace App\Contracts;  
  
interface ProductServiceInterface  
{  
    public function getAllProducts();  
    public function getProductById($id);  
}  

ファイルを作成します app/Services/ProductService.php

<?php  
  
namespace App\Services;  
  
use App\Contracts\ProductServiceInterface;  
  
class ProductService implements ProductServiceInterface  
{  
    public function getAllProducts()  
    {  
        // Logic to get all products  
    }  
  
    public function getProductById($id)  
    {  
        // Logic to get product by ID  
    }  
}  

ステップ 3: Service コンテナに登録する

ファイルを開いて関数 app/Providers/AppServiceProvider.php に追加します register

use App\Contracts\ProductServiceInterface;  
use App\Services\ProductService;  
  
public function register()  
{  
    $this->app->bind(ProductServiceInterface::class, ProductService::class);  
}  

ステップ 4: 使用する Dependency Injection

コントローラーでは、 Dependency Injection 次のものを注入するために使用できます ProductService

use App\Contracts\ProductServiceInterface;  
  
public function index(ProductServiceInterface $productService)  
{  
    $products = $productService->getAllProducts();  
    return view('products.index', compact('products'));  
}  

結論

Dependency Injection と の Service コンテナ を利用して Laravel 、商品リストを管理するアプリケーションを構築しました。 このアプローチにより、ソース コードの保守が容易になり、アプリケーションのさまざまなコンポーネント間の依存関係が軽減されます。

ニーズに応じてプロジェクトを練習およびカスタマイズして、 Dependency Injection での使用についてより深く理解してください Laravel。