Membina Laravel Aplikasi dengan Dependency Injection

Dalam artikel ini, kami akan meneruskan pembinaan Laravel aplikasi menggunakan Dependency Injection untuk mengurus kebergantungan dan mencipta struktur kod sumber yang lebih boleh diselenggara. Kami akan membuat contoh mudah menguruskan senarai produk di kedai.

Langkah 1: Persediaan

Pertama, pastikan anda telah Laravel memasang pada komputer anda. Anda boleh gunakan Composer untuk membuat projek baharu Laravel:

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

Selepas mencipta projek, navigasi ke direktori projek:

cd DependencyInjectionApp

Langkah 2: Buat Service dan Interface

Mari mulakan dengan mencipta service untuk menguruskan senarai produk. Buat interface dan kelas yang melaksanakan ini interface:

Buat fail app/Contracts/ProductServiceInterface.php:

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

Buat fail 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  
    }  
}  

Langkah 3: Daftar dalam Service Bekas

Buka fail app/Providers/AppServiceProvider.php dan tambah pada register fungsi:

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

Langkah 4: Menggunakan Dependency Injection

Dalam pengawal, anda boleh gunakan Dependency Injection untuk menyuntik ProductService:

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

Kesimpulan

Dengan menggunakan Dependency Injection dan Service Bekas dalam Laravel, kami telah membina aplikasi untuk mengurus senarai produk. Pendekatan ini menjadikan kod sumber lebih boleh diselenggara dan mengurangkan kebergantungan antara komponen aplikasi yang berbeza.

Berlatih dan sesuaikan projek mengikut keperluan anda untuk mendapatkan pemahaman yang lebih mendalam tentang penggunaan Dependency Injection dalam Laravel.