ขั้นตอนการทำงาน

ขั้นตอนการเริ่มกระบวนการ

หลังจากรัน php start.php start ขั้นตอนการทำงานเป็นดังนี้:

  1. โหลดการตั้งค่าภายใต้ config/
  2. กำหนดค่าที่เกี่ยวข้องกับ Worker เช่น pid_file, stdout_file, log_file, max_package_size เป็นต้น
  3. สร้างกระบวนการ webman และฟังพอร์ต (ค่าเริ่มต้น: 8787)
  4. สร้างกระบวนการที่กำหนดเองตามการตั้งค่า
  5. หลังจากกระบวนการ 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)

ขั้นตอนการประมวลผลคำขอ

  1. ตรวจสอบว่า URL ของคำขอสอดคล้องกับไฟล์คงที่ใน public หรือไม่ หากใช่ ให้ส่งคืนไฟล์ (สิ้นสุดคำขอ) หากไม่ ให้ไปขั้นตอนที่ 2
  2. ตรวจสอบว่า URL เข้ากับเส้นทางใดเส้นทางหนึ่งหรือไม่ หากไม่เข้ากัน ให้ไปขั้นตอนที่ 3 หากเข้ากัน ให้ไปขั้นตอนที่ 4
  3. ตรวจสอบว่าเส้นทางเริ่มต้นถูกปิดหรือไม่ หากปิด ให้ส่งคืน 404 (สิ้นสุดคำขอ) หากไม่ ให้ไปขั้นตอนที่ 4
  4. หา middleware ของ controller ที่สอดคล้องกับคำขอ รันการดำเนินการล่วงหน้าของ middleware ตามลำดับ (ขั้นตอนคำขอของโมเดลหัวหอม) รันลอจิกธุรกิจของ controller รันการดำเนินการตามหลังของ middleware (ขั้นตอนการตอบสนองของโมเดลหัวหอม) แล้วสิ้นสุดคำขอ (ดู โมเดลหัวหอมของ Middleware)