PSR-11 Container Interface
มาตรฐาน Container Interface — เข้าใจ Dependency Injection Container แบบ PSR-11
Dependency Injection Container คืออะไร
// ❌ สร้าง dependency เองทุกครั้ง
class OrderController
{
public function store(Request $request)
{
$db = new DatabaseConnection('mysql', 'localhost', 'mydb');
$mailer = new SmtpMailer('smtp.gmail.com', 587, 'user', 'pass');
$logger = new FileLogger('/var/log/app.log');
$paymentGateway = new StripeGateway(config('stripe.key'));
$orderService = new OrderService($db, $mailer, $logger, $paymentGateway);
$orderService->create($request->all());
}
}1. PSR-11 กำหนดอะไร
2. Exception ที่ PSR-11 กำหนด
3. ใช้กับ Laravel ยังไง
3.1 วิธีใช้พื้นฐาน
3.2 Auto Resolution (วิธีที่แนะนำ)
3.3 Register Service ใน Service Provider
4. ลองเขียน Container เองแบบง่ายๆ
5. ทำไมต้อง PSR-11 ไม่ใช่แค่ใช้ Laravel Container ตรงๆ
6. สิ่งที่ PSR-11 ไม่ได้กำหนด
สรุป
Last updated