ข้ามไปยังเนื้อหา

load.php

กระบวนการโหลด Somtum PHP micro Framework

ขั้นตอนการโหลด Somtum

  1. ขั้นตอนแรกเมื่อมีการเรียกหน้าเว็บจะเป็นการเรียกไฟล์ 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/
    ค่าตัวแปรของระบบต่างๆเหล่านี้ ตัว Framework จะทำการตรวจสอบให้ในตอนเริ่มต้น ซึ่ง Server ส่วนใหญ่จะสามารถให้ค่าได้ถูกต้อง แต่หากจำเป็นต้องกำหนดค่าเหล่านี้ด้วยตัวเองก็สามารถทำได้โดยการกำหนดค่าตัวแปรเหล่านี้ไว้ก่อนเรียก load.php
  2. ขั้นตอนถัดมา จะเป็นการเริ่มต้นโหลดแอพพลิเคชั่น ด้วยคำสั่ง
    $app = Somtum::createWebApplication();
    เมธอด createWebApplication จะมีพารามิเตอร์หนึ่งตัวคือ Config Class ซึ่งค่าเริมต้นหากไม่ระบุคลาสที่ต้องการให้กับเมธอด จะเป็นการเรียกใช้คลาส Somtum\Config ของ Framework
    $app->run();
    เสร็จแล้วสั่งให้แอพพลิชั่นทำงานด้วยคำสั่ง run
  3. เมื่อแอพลิเคชั่นทำงาน ขั้นตอนต่อไปจะเป็นการส่งต่อไปยัง Router เพื่อทำการตรวจสอบว่ามีการเรียกโมดูลหรือคลาสใดเข้ามา ในกรณีที่ไม่มีการระบุ Controller มา (เช่นการเรียกไปยังโดเมนเปล่าๆ) ตัว Router จะคืนค่า Controller หลักที่ระบุไว้ในตัวแปร Somtum::$defaultController มาให้ ซึ่งก็คือ \Index\Index\Controller
    ในกรณีที่ต้องการกำหนด Default Controler อื่นสามารถกำหนดได้ก่อนการ run แอพพิลเคชั่น
    $app = Somtum::createWebApplication();
    $app->defaultController = '\Index\Loader\Controller';
    $app->run();
  4. สุดท้าย จะเป็นการส่งการทำงานไปยังคลาสที่ Router กำหนด ต่อไป
^