Iarratas a Thógáil Laravel le Dependency Injection

San Airteagal seo, beimid ag siúl trí Laravel úsáid a bhaint as feidhmchlár a thógáil Dependency Injection chun spleáchais a bhainistiú agus struchtúr cód foinse níos inbhuanaithe a chruthú. Cruthóimid sampla simplí de bhainistiú liosta táirgí i siopa.

Céim 1: Ullmhúchán

Ar an gcéad dul síos, cinntigh go bhfuil tú Laravel suiteáilte ar do ríomhaire. Is féidir leat úsáid a bhaint as Composer chun tionscadal nua a chruthú Laravel:

composer create-project --prefer-dist laravel/laravel DependencyInjectionApp

Tar éis duit an tionscadal a chruthú, déan nascleanúint chuig eolaire an tionscadail:

cd DependencyInjectionApp

Céim 2: Cruthaigh Service agus Interface

Tosaímid le service liosta táirgí a chruthú chun an liosta táirgí a bhainistiú. Cruthaigh interface agus rang a chuireann seo i bhfeidhm interface:

Cruthaigh an comhad app/Contracts/ProductServiceInterface.php:

<?php  
  
namespace App\Contracts;  
  
interface ProductServiceInterface  
{  
    public function getAllProducts();  
    public function getProductById($id);  
}  

Cruthaigh an comhad 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  
    }  
}  

Céim 3: Cláraigh sa Service Coimeádán

Oscail an comhad app/Providers/AppServiceProvider.php agus cuir leis an register bhfeidhm:

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

Céim 4: Ag baint úsáide as Dependency Injection

Sa rialtóir, is féidir leat a úsáid Dependency Injection chun an ProductService:

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

Conclúid

Trí úsáid a bhaint as Dependency Injection agus an Service Coimeádán i Laravel, tá feidhmchlár tógtha againn chun liosta táirgí a bhainistiú. Déanann an cur chuige seo an cód foinse níos inbhuanaithe agus laghdaíonn sé spleáchas idir comhpháirteanna éagsúla an fheidhmchláir.

Déan an tionscadal a chleachtadh agus a shaincheapadh de réir do riachtanas chun tuiscint níos doimhne a fháil ar úsáid Dependency Injection i Laravel.