Grav - วงจรชีวิต
ในบทนี้เราจะเข้าใจวงจรชีวิตของ Grav Grav Lifecycle เป็นตัวกำหนดวิธีการทำงานของ Grav เพื่อขยาย Grav ผ่าน Plugins แผนภาพต่อไปนี้แสดงขั้นตอนของวงจรชีวิตกราฟ
สี่ขั้นตอนต่อไปนี้จากวงจรชีวิต Grav -
PHP Version
Loader class is initialized
Obtain Grav Instance
Call Grav Process
เวอร์ชัน PHP
ตรวจสอบเวอร์ชันของ PHP เพื่อให้แน่ใจว่าเราใช้งาน PHP เวอร์ชันที่สูงกว่า 5.4.0
คลาส Loader เริ่มต้นแล้ว
ในขั้นตอนที่สอง class loader จะเริ่มต้น
รับอินสแตนซ์ Grav
หากไม่มีอินสแตนซ์จะเรียกใช้เมธอดload ()และเพิ่ม Grav
เริ่มต้นค่าดีบักเกอร์และเพิ่มให้กับดีบักเกอร์
มันลงทะเบียนบันทึกและตัวจัดการข้อผิดพลาด
เพิ่ม uri, งาน, เหตุการณ์, แคช, เซสชัน, ปลั๊กอิน, ธีม, กิ่งไม้, อนุกรมวิธาน, ภาษา, หน้า, เนื้อหาและ URL พื้นฐาน
ลงทะเบียนสตรีมและตัวจัดการการกำหนดค่า
เรียกกระบวนการ Grav
เริ่มต้นการกำหนดค่าวัตถุ Uri ตัวจัดการข้อผิดพลาดดีบักเกอร์และเซสชัน
หลังจากกำหนดค่าเริ่มต้นระบบจะเริ่มบัฟเฟอร์เอาต์พุต
เริ่มต้นเขตเวลาและปลั๊กอินและเริ่มการทำงานของเหตุการณ์onPluginsInitialized
ถัดไปเริ่มต้นชุดรูปแบบและไฟonThemeInitializedและonTask [งาน]เหตุการณ์
เริ่มต้นสินทรัพย์และเริ่มเหตุการณ์onAssetsInitialized
เริ่มต้นกิ่งไม้ด้วยการกระทำต่อไปนี้ -
ขึ้นอยู่กับการกำหนดค่าจะตั้งค่าพา ธ เทมเพลต twig
จัดการเทมเพลตภาษาที่มี
จากนั้นจะเริ่มต้นเหตุการณ์onTwigTemplatePaths
โหลดโซ่โหลดและโครงแบบกิ่งไม้
ไฟonTwigInitializedเหตุการณ์
มันโหลดส่วนขยาย twig และเริ่มเหตุการณ์onTwigExtensions
มันกำหนดตัวแปรกิ่งไม้มาตรฐาน
ถัดไปจะเริ่มต้นเพจ
มันเรียกbuildPages ()วิธีการ
หากแคชดีก็จะโหลดหน้าจากแคช หากแคชไม่ดีจะเรียกเมธอดrecurse ()
onBuildPagesInitializedเหตุการณ์ถูกยิงในเมธอดrecurse ()
หากพบไฟล์เป็น. mdการดำเนินการต่อไปนี้จะดำเนินการ -
ในการโหลดรายละเอียดไฟล์จะเรียกเมธอดinit ()
มันตั้งค่า filePath แก้ไขและ id
ส่วนหัว ()วิธีการที่เรียกว่าการเริ่มต้นตัวแปรส่วนหัว
กระสุน ()วิธีการที่เรียกว่าการตั้งกระสุนของ URL
วิธีการมองเห็น ()เรียกว่าเพื่อตั้งค่าสถานะที่มองเห็นได้
ขึ้นอยู่กับโฟลเดอร์ที่ขึ้นต้นด้วย _ (ขีดล่าง) modularTwig ()ถูกตั้งค่า
หลังจากนั้นจะเริ่มเหตุการณ์onPageProcessed
เรียกคืน ()เด็กหากพบโฟลเดอร์
มันเริ่มต้นเหตุการณ์onFolderProcessed
เรียกbuildRoutes ()วิธีการ
สำหรับทุกหน้าการจัดหมวดหมู่จะเริ่มต้น
เส้นทางตารางถูกสร้างขึ้นสำหรับการค้นหาได้อย่างรวดเร็ว
เหตุการณ์onPagesInitializedและonPageInitializedจะเริ่มทำงาน
เพิ่มดีบักเกอร์ CSS / JS ในเนื้อหา
ใช้เมธอด processSite ()ของ Twig เราจะได้ผลลัพธ์
เหตุการณ์onTwigSiteVariablesเริ่มทำงาน
รับเอาต์พุตของเพจ
เมื่อไม่พบเพจหรือไม่สามารถกำหนดเส้นทางได้เหตุการณ์onPageNotFoundจะเริ่มทำงาน
ตัวแปร Twig ทั้งหมดถูกตั้งค่าบนวัตถุ twig
ชื่อเทมเพลตถูกตั้งค่าขึ้นอยู่กับข้อมูลไฟล์ / ส่วนหัว / ส่วนขยาย
เรียกวิธีการrender ()
ส่งคืนรูปแบบไฟล์ใน HTML
มันเริ่มต้นเหตุการณ์onOutputGenerated
ตั้งค่าส่วนหัว HTTP
แสดงผลลัพธ์
บัฟเฟอร์เอาต์พุตจะถูกล้างไปที่เพจ
เหตุการณ์onOutputRenderedจะได้รับไฟ
ปิดการเชื่อมต่อกับไคลเอนต์
สุดท้ายก็เริ่มเหตุการณ์onShutDown
เมื่อเรียกใช้เมธอดcontent ()บนเพจวงจรชีวิตต่อไปนี้จะเกิดขึ้น
เหตุการณ์onPageContentRawจะได้รับไฟ
ตามการตั้งค่า Markdown และ Twig จะประมวลผลเพจ
มันเริ่มเหตุการณ์onPageContentProcessed