构建 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  
    }  
}  

Service 第三步:在容器 中注册

打开文件 app/Providers/AppServiceProvider.php 并添加到 register 函数中:

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

第四步:使用 Dependency Injection

在控制器中,您可以使用 Dependency Injection 注入 ProductService

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

结论

通过利用 中的 Container Dependency Injection, 我们构建了一个应用程序来管理产品列表。 这种方法使源代码更易于维护,并减少了应用程序不同组件之间的依赖关系。 Service Laravel

根据您的需求练习和定制项目,以更深入地了解 Dependency Injection 在 Laravel.