En este artículo, analizaremos la creación de una Laravel aplicación Dependency Injection para administrar dependencias y crear una estructura de código fuente más fácil de mantener. Crearemos un ejemplo sencillo de gestión de una lista de productos en una tienda.
Paso 1: Preparación
En primer lugar, asegúrese de haberlo Laravel instalado en su computadora. Puedes usar Composer para crear un nuevo Laravel proyecto:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Después de crear el proyecto, navegue hasta el directorio del proyecto:
cd DependencyInjectionApp
Paso 2: Crear Service y Interface
Comencemos por crear un service para administrar la lista de productos. Cree una interface y una clase que implemente esto interface:
Crea el archivo app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Crea el archivo 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
}
}
Paso 3: Regístrate en el Service Contenedor
Abra el archivo app/Providers/AppServiceProvider.php
y agregue a la register
función:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Paso 4: Uso Dependency Injection
En el controlador, puede usar Dependency Injection para inyectar ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Conclusión
Al utilizar Dependency Injection el Service Contenedor en Laravel, hemos creado una aplicación para administrar una lista de productos. Este enfoque hace que el código fuente sea más fácil de mantener y reduce las dependencias entre los diferentes componentes de la aplicación.
Practique y personalice el proyecto según sus necesidades para obtener una comprensión más profunda del uso Dependency Injection en Laravel.