ขั้นตอนการทำงาน
ขั้นตอนการเริ่มกระบวนการ
หลังจากรัน php start.php start ขั้นตอนการทำงานเป็นดังนี้:
- โหลดการตั้งค่าภายใต้ config/
- กำหนดค่าที่เกี่ยวข้องกับ Worker เช่น
pid_file,stdout_file,log_file,max_package_sizeเป็นต้น - สร้างกระบวนการ webman และฟังพอร์ต (ค่าเริ่มต้น: 8787)
- สร้างกระบวนการที่กำหนดเองตามการตั้งค่า
- หลังจากกระบวนการ webman และกระบวนการที่กำหนดเองเริ่มทำงานแล้ว จะดำเนินการตามลอจิกต่อไปนี้ (ทั้งหมดใน
onWorkerStart):
① โหลดไฟล์ที่ตั้งค่าในconfig/autoload.phpเช่นapp/functions.php
② โหลด middleware ที่ตั้งค่าในconfig/middleware.php(รวมถึงconfig/plugin/*/*/middleware.php)
③ รันเมธอดstartของคลาสที่ตั้งค่าในconfig/bootstrap.php(รวมถึงconfig/plugin/*/*/bootstrap.php) เพื่อเริ่มต้นโมดูล เช่น การเชื่อมต่อฐานข้อมูล Laravel
④ โหลดเส้นทางที่กำหนดในconfig/route.php(รวมถึงconfig/plugin/*/*/route.php)
ขั้นตอนการประมวลผลคำขอ
- ตรวจสอบว่า URL ของคำขอสอดคล้องกับไฟล์คงที่ใน public หรือไม่ หากใช่ ให้ส่งคืนไฟล์ (สิ้นสุดคำขอ) หากไม่ ให้ไปขั้นตอนที่ 2
- ตรวจสอบว่า URL เข้ากับเส้นทางใดเส้นทางหนึ่งหรือไม่ หากไม่เข้ากัน ให้ไปขั้นตอนที่ 3 หากเข้ากัน ให้ไปขั้นตอนที่ 4
- ตรวจสอบว่าเส้นทางเริ่มต้นถูกปิดหรือไม่ หากปิด ให้ส่งคืน 404 (สิ้นสุดคำขอ) หากไม่ ให้ไปขั้นตอนที่ 4
- หา middleware ของ controller ที่สอดคล้องกับคำขอ รันการดำเนินการล่วงหน้าของ middleware ตามลำดับ (ขั้นตอนคำขอของโมเดลหัวหอม) รันลอจิกธุรกิจของ controller รันการดำเนินการตามหลังของ middleware (ขั้นตอนการตอบสนองของโมเดลหัวหอม) แล้วสิ้นสุดคำขอ (ดู โมเดลหัวหอมของ Middleware)