在本文中,我们将逐步构建一个 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.