Laravel İle bir Uygulama Oluşturma Dependency Injection

Laravel Bu makalede, bağımlılıkları yönetmek ve daha sürdürülebilir bir kaynak kod yapısı oluşturmak için kullanarak bir uygulama oluşturmayı inceleyeceğiz Dependency Injection. Bir mağazada ürün listesini yönetmenin basit bir örneğini oluşturacağız.

Adım 1: Hazırlık

Öncelikle, Laravel bilgisayarınıza yüklediğinizden emin olun. Composer Yeni bir proje oluşturmak için şunları kullanabilirsiniz Laravel:

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

Projeyi oluşturduktan sonra, proje dizinine gidin:

cd DependencyInjectionApp

2. Adım: Oluşturun Service ve Interface

service Ürün listesini yönetmek için bir ürün listesi oluşturarak başlayalım. interface Bunu uygulayan bir ve bir sınıf oluşturun interface:

Dosyayı oluşturun app/Contracts/ProductServiceInterface.php:

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

Dosyayı oluşturun 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  
    }  
}  

3. Adım: Kapsayıcıya Service Kaydolun

Dosyayı açın app/Providers/AppServiceProvider.php ve işleve ekleyin register:

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

4. Adım: Kullanma Dependency Injection

Denetleyicide, Dependency Injection şunu enjekte etmek için kullanabilirsiniz ProductService:

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

Çözüm

Dependency Injection ve Service Container'ı kullanarak Laravel, bir ürün listesini yönetmek için bir uygulama oluşturduk. Bu yaklaşım, kaynak kodunu daha sürdürülebilir hale getirir ve uygulamanın farklı bileşenleri arasındaki bağımlılıkları azaltır.

. Dependency Injection _ Laravel _