この記事では、依存関係を管理し、より保守しやすいソース コード構造を作成するために を使用して 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。