Membangun Laravel Aplikasi dengan Dependency Injection

Pada artikel ini, kita akan berjalan melalui pembuatan Laravel aplikasi yang digunakan Dependency Injection untuk mengelola dependensi dan membuat struktur kode sumber yang lebih dapat dipelihara. Kami akan membuat contoh sederhana mengelola daftar produk di toko.

Langkah 1: Persiapan

Pertama, pastikan Anda telah Laravel menginstalnya di komputer Anda. Anda dapat menggunakan Composer untuk membuat proyek baru Laravel:

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

Setelah membuat proyek, navigasikan ke direktori proyek:

cd DependencyInjectionApp

Langkah 2: Buat Service dan Interface

Mari kita mulai dengan membuat service untuk mengelola daftar produk. Buat an interface dan kelas yang mengimplementasikan ini interface:

Buat file app/Contracts/ProductServiceInterface.php:

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

Buat file 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 di Service Wadah

Buka file app/Providers/AppServiceProvider.php dan tambahkan ke 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

Di pengontrol, Anda dapat menggunakan Dependency Injection untuk menyuntikkan ProductService:

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

Kesimpulan

Dengan memanfaatkan Dependency Injection dan Service Container di dalamnya Laravel, kami telah membangun aplikasi untuk mengelola daftar produk. Pendekatan ini membuat kode sumber lebih mudah dipelihara dan mengurangi ketergantungan antara berbagai komponen aplikasi.

Berlatih dan sesuaikan proyek sesuai dengan kebutuhan Anda untuk mendapatkan pemahaman yang lebih dalam tentang Dependency Injection penggunaan Laravel.