Config

Class สำหรับจัดการกับ Config ของระบบ

\Somtum\Config

ทำหน้าที่ในการจัดการค่าติดตั้งของระบบ โดยมีความสามารถพื้นฐานในการอ่านข้อมูลจากไฟล์ config ซึ่งค่าเริ่มต้นจะอยู่ใน /settings/config.php คลาสนี้จะทำงานแบบ Singleton หรือสามารถมีได้ Instance เดียวเท่านั้น ตลอดทั้งโปรเจ็ค เพื่อจะประกันได้ว่าจะมี config เดียวเท่านั้นอยู่ในระบบ

$cfg = \Somtum\Config::create();

การสร้าง Instance ของ Config ใช้คำสั่ง create() เท่านั้น ไม่สามารถใช้ new ได้ และหากพยายามที่จะสร้าง Instance ใหม่ด้วยคำสั่ง new จะเกิดข้อผิดพลาดขึ้น เมื่อเราสั่ง create คลาสจะไปทำการโหลด config จากไฟล์ /settings/config.php มาให้โดยอัตโนมัติ

<?php
/* config.php */
return array(
  // template ที่กำลังใช้งานอยู่
  'skin' => 'default',
  // title, description
  'web_title' => 'Somtum',
  'web_description' => 'PHP Micro Framework',
);

ด้านบนคือรูปแบบของไฟล์ /settings/config.php ซึ่งหากเราต้องการที่โหลดไฟล์ config ใหม่ หรือต้องการเปลี่ยนไฟล์ config สามารถทำได้โดยใช้คำสั่ง load

$cfg = \Somtum\Config::load('/path/to/config.php');

หรือหากต้องการบันทึกค่าติดตั้งลงไฟล์ สามารถทำได้ด้วยคำสั่ง save

\Somtum\Config::save($cfg, '/path/to/config.php');

หมายเหตุ ไฟล์ค่าติดตั้งเริ่มต้น สามารถมีได้หลายไฟล์ตามโครงสร้างของระบบ โดยจะมีข้อกำหนดดังนี้

  • ขั้นตอนแรกจะโหลดไฟล์จาก ROOT_PATH.'settings/config.php' ก่อน
  • และหาก APP_PATH ไม่ตรงกันกับ ROOT_PATH (เช่นเรียกจากไดเร็คทอรี่ admin/) จะโหลดไฟล์จาก ROOT_PATH.'settings/config.php' เพิ่มเติม
^