load.php
กระบวนการโหลด Somtum PHP micro Framework
ขั้นตอนการโหลด Somtum
- ขั้นตอนแรกเมื่อมีการเรียกหน้าเว็บจะเป็นการเรียกไฟล์ load.php ก่อน ซึ่งไฟล์นี้จะทำหน้าที่ในการเตรียมตัวแปรต่างๆให้กับ Framework
- DEBUG ค่าเริ่มต้นเป็น 0 จะใช้การตั้งค่าของ Server ในการแสดงข้อผิดพลาด ปกติจะใช้ค่านี้ในขณะใช้งานจริง และ เป็น 2 หากต้องการให้แสดงข้อผิดพลาดทางจอภาพ (แนะนำให้ใช้ค่านี้เฉพาะตอนออกแบบเท่านั้น)
- VENDOR_DIR ค่าเริ่มต้น เป็นไดเร็คทอรี่ Somtum/ รวม Path ตั้งแต่ Root ของ Server สำหรับเก็บไฟล์ของระบบ
- ROOT_PATH เก็บ Path ที่ติดตั้ง Framework ตั้งแต่ Root ของ Server เช่น /var/www/htdocs
- APP_PATH เก็บ Path ของ Project ตั้งแต่ Root ของ Server ปกติ จะเป็นค่าเดียวกันกับ ROOT_PATH หากมี Project เดียวที่ติดตั้งบน Root ของ Server หากมีการใช้งานโฟลเดอร์ย่อยด้วยเช่นเว็บที่มีส่วนแอดมินแยกต่างหากในโฟลเดอร์ /admin ค่านี้จะต้องอ้างอิงไปยัง /admin ด้วย
- BASE_PATH เก็บชื่อไดเร็คทอรี่ที่ติดตั้ง Framework เช่น หากติดตั้ง Framework ไว้ที่ Root ของ Server เช่น http://domain.tld ตัวแปรนี้จะเก็บค่า / หรือหากติดตั้ง Framework ไว้ในไดเร็คทอรี่ย่อยก็จะได้เป็นชื่อของไดเร็คทอรี่ย่อย เช่น http://domain.tld/path/to/ ตัวแปรนี้จะเก็บค่า /path/to/
- HOST เก็บชื่อ HostName เช่น domain.tld
- WEB_URL เก็บ URL รวมพาธ เช่น http://domain.tld/path/to/
- ขั้นตอนถัดมา จะเป็นการเริ่มต้นโหลดแอพพลิเคชั่น ด้วยคำสั่ง
เมธอด createWebApplication จะมีพารามิเตอร์หนึ่งตัวคือ Config Class ซึ่งค่าเริมต้นหากไม่ระบุคลาสที่ต้องการให้กับเมธอด จะเป็นการเรียกใช้คลาส Somtum\Config ของ Framework$app = Somtum::createWebApplication();
เสร็จแล้วสั่งให้แอพพลิชั่นทำงานด้วยคำสั่ง run$app->run(); - เมื่อแอพลิเคชั่นทำงาน ขั้นตอนต่อไปจะเป็นการส่งต่อไปยัง Router เพื่อทำการตรวจสอบว่ามีการเรียกโมดูลหรือคลาสใดเข้ามา ในกรณีที่ไม่มีการระบุ Controller มา (เช่นการเรียกไปยังโดเมนเปล่าๆ) ตัว Router จะคืนค่า Controller หลักที่ระบุไว้ในตัวแปร Somtum::$defaultController มาให้ ซึ่งก็คือ \Index\Index\Controller
ในกรณีที่ต้องการกำหนด Default Controler อื่นสามารถกำหนดได้ก่อนการ run แอพพิลเคชั่น$app = Somtum::createWebApplication();
$app->defaultController = '\Index\Loader\Controller';
$app->run(); - สุดท้าย จะเป็นการส่งการทำงานไปยังคลาสที่ Router กำหนด ต่อไป