Creación de una Laravel aplicación con Dependency Injection

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.