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.