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.