ในบทความนี้ เราจะอธิบายเกี่ยวกับการสร้าง Laravel แอปพลิเคชันที่ใช้ Dependency Injection เพื่อจัดการการพึ่งพาและสร้างโครงสร้างซอร์สโค้ดที่บำรุงรักษาได้มากขึ้น เราจะสร้างตัวอย่างง่ายๆในการจัดการรายการสินค้าในร้านค้า
ขั้นตอนที่ 1: การเตรียมการ
ประการแรก ตรวจสอบให้แน่ใจว่าคุณได้ Laravel ติดตั้งบนคอมพิวเตอร์ของคุณแล้ว คุณสามารถใช้ Composer เพื่อสร้างโครงการใหม่ Laravel:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
หลังจากสร้างโครงการแล้ว ให้ไปที่ไดเร็กทอรีโครงการ:
cd DependencyInjectionApp
ขั้นตอนที่ 2: สร้าง Service และ Interface
เริ่มต้นด้วยการสร้าง a service เพื่อจัดการรายการสินค้า สร้าง interface และคลาสที่ใช้สิ่งนี้ interface:
สร้างไฟล์ app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
สร้างไฟล์ 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: ลงทะเบียนใน Service คอนเทนเนอร์
เปิดไฟล์ app/Providers/AppServiceProvider.php
และเพิ่ม register
ฟังก์ชั่น:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
ขั้นตอนที่ 4: การใช้ Dependency Injection
ในคอนโทรลเลอร์ คุณสามารถใช้ Dependency Injection เพื่อฉีด ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
บทสรุป
ด้วยการใช้ Dependency Injection และ Service คอนเทนเนอร์ใน Laravel เราได้สร้างแอปพลิเคชันเพื่อจัดการรายการสินค้า วิธีการนี้ทำให้ซอร์สโค้ดสามารถบำรุงรักษาได้มากขึ้น และลดการพึ่งพาระหว่างคอมโพเนนต์ต่างๆ ของแอ็พพลิเคชัน
ฝึกฝนและปรับ แต่ง โครงการตามความต้องการของคุณเพื่อทำความเข้าใจการใช้งาน Dependency Injection ใน Laravel