สร้าง Laravel แอปพลิเคชันด้วย Dependency Injection

ในบทความนี้ เราจะอธิบายเกี่ยวกับการสร้าง 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