ค่าคงที่ต่างๆ ของ Kotchasan
คชสารมีค่าคงที่ ที่สามารถเรียกใช้งานได้ตลอดทั้งโปรเจ็คอยู่หลายตัว ซึ่งค่าคงที่ทุกตัวจะมีการกำหนดค่าเริ่มต้นอยู่ที่ไฟล์ Kotchasan/load.php
DEBUG เป็นค่าคงที่สำหรับกำหนดการแสดงผลข้อผิดพลาดต่างๆของคชสาร และของ PHP เอง ค่าเริ่มต้นของค่าคงที่นี้คือ 0
VERSION เป็นค่าคงที่บอกเวอร์ชั่นของคชสาร (อ่านได้อย่างเดียว)
DB_LOG เป็นค่าคงที่สำหรับกำหนดค่าการเก็บบันทึกการ Query ฐานข้อมูล ค่าเริ่มต้นของค่าคงที่นี้คือ false ซึ่งหมายถึงไม่มีการบันทึก หากต้องการเปิดใช้งาน สามาถกำหนดค่าให้เป็น true ได้ เหมือนการกำหนดค่า DEBUG หากมีการเปิดใช้งานความสามารถนี้ จะมีการเก็บบันทึกการ Query เป็นไฟล์ที่ไดเร็คทอรี่ datas/logs/ โดยจะทำการแยกเก็บเป็นรายวัน ในกรณีที่ไม่จำเป็น ผมไม่แนะนำให้เปิดใช้งานความสามารถนี้ เพราะจะทำให้ภาพรวมการใช้งานระบบช้าลง เนื่องจากจะต้องมีการบันทึกข้อมูลการ Query ลง log อยู่ตลอดเวลา
VENDOR_DIR เป็นค่าคงที่บอกที่อยู่รวมพาธและไดเร็คทอรี่ของคชสาร ตามที่ได้ติดตั้งไว้ เช่น /path/to/Kotchasan/ (อ่านได้อย่างเดียว)
APP_PATH เก็บค่าไดเร็คทอรี่ของแอพพลิเคชั่น (รวมพาธ) ค่านี้จะอ้างอิงจากไฟล์ที่ใช้เรียกแอพพลิเคชั่น (เช่น index.php) ใน 1 โปรเจ็คอาจมีได้หลายแอพพลิเคชั่น ซึ่งแต่ละแอพพลิเคชั่นจะมีค่า APP_PATH ของตัวเอง และไม่ซ้ำกัน ค่านี้จะใช้สำหรับแยกแอพพลิเคชั่นย่อยแต่ละตัวออกจากแอพพลิเคชั่นหลัก ทำให้สามารถมี config เฉพาะของแต่ละแอพพลิเคชั่นได้ เช่น การสร้างส่วนแอดมิน เราสามารถเพิ่มการตั้งค่าที่ไดเร็คทอรี่ของแอพพลิเคชั่น เช่น admin/settings/ เพื่อให้การตั้งค่าแตกต่างจากแอพพลิเคชั่นหลักที่ settings/ ได้ การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
ROOT_PATH เก็บค่าไดเร็คทอรี่ของแอพพลิเคชั่น ซึ่งค่าเริ่มต้นจะเป็นค่าเดียวกันกับ APP_PATH แต่ค่านี้จะใช้ทำงานตรงกันข้ามกับ APP_PATH คือมันจะใช้สำหรับระบุไดเร็คทอรี่รากของระบบซึ่งจะใช้งานร่วมกัน เพื่อให้สามารถอ้างอิงถึงกันได้ตลอดทั้งโปรเจ็ค เช่น admin/ และ เว็บหลักจะใช้ค่าติดตั้งฐานข้อมูลที่ settings/database.php ร่วมกัน ใช้ไดเร็คทอรี่ datas/ ร่วมกัน และใช้ไดเร็คทอรี่ language/ ร่วมกัน เป็นต้น ซึ่งในการโหลดค่า settings ต่างๆของคชสาร คชสารจะทำการโหลดค่าติดตั้งต่างๆที่ ROOT_PATH ก่อน แล้วถึงจะไปโหลดจาก APP_PATH การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
BASE_PATH ค่าคงที่ระบุค่าไดเร็คทอรี่ที่ติดตั้งแอพพลิเคชั่น นับแต่ DOCUMENT_ROOT เช่นติดตั้งแอพพลิเคชั่นไว้ที่ http://domain.tld/gcms/ BASE_PATH คือ gcms/ และ BASE_PATH ของ http://domain.tld/gcms/admin คือ /gcms/admin/ ในกรณีที่ติดตั้งไว้ที่ไดเร็คทอรี่รากเลย BASE_PATH จะเป็น / การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
WEB_URL ค่าคงที่ระบุค่า URL รวมพาธของเว็บไซต์ เช่น http://domain.tld/folder (ไม่ต้องมี / ปิดท้าย) การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG เช่นกัน
DATA_FOLDER ค่าคงที่ระบุค่าไดเร็คทอรี่สำหรับเก็บไฟล์ที่สร้างขึ้นขณะใช้งาน หรือ ที่อัปโหลดโดยผู้ใช้ ค่าเริ่มต้นของค่าคงที่นี้คือ datas/ และสามารถกำหนดค่านี้ด้วยตัวเอง เหมือน DEBUG
TEMPLATE_ROOT ค่าคงที่ระบุไดเร็คทอรี่รากของเท็มเพลท (ไดเร็คทอรี่หลักของเท็มเพลทคือ skin/) ซึ่งค่าเริ่มต้นค่าของค่าคงที่นี้จะเป็นค่าเดียวกับ APP_PATH (หรือจำไว้ง่ายๆว่า แอพพลิเคชั่นแต่ละตัวจะมี Template เฉพาะของแต่ละแอพพลิเคชั่นแยกกัน เช่น Template ของเว็บหลักเป็นคนละตัวกันกับ Template ของ admin/) การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
ค่าคงที่ทั้งหมดจะถูกกำหนดค่าและตรวจสอบโดยคชสารในตอนเริ่มทำงานทุกครั้ง ซึ่ง Server ส่วนใหญ่ สามารถใช้ค่าเริ่มต้นนี้ได้เลย ในกรณีที่ต้องการกำหนดเอง หรือต้องการเปลี่ยนแปลงค่า หรือ มันไม่สามารถอ่านค่าได้ถูกต้อง สามารถกำหนดได้เอง โดยกำหนดไว้ก่อนการเรียกไฟล์ Kotchasan/load.php ตามตัวอย่าง DEBUG
DEBUG เป็นค่าคงที่สำหรับกำหนดการแสดงผลข้อผิดพลาดต่างๆของคชสาร และของ PHP เอง ค่าเริ่มต้นของค่าคงที่นี้คือ 0
- 0 หมายถึง จะมีการบันทึกเฉพาะข้อผิดพลาดร้ายแรงเท่านั้น (คำเตือนจะไม่สนใจ) ลงไฟล์ error_log.php ในไดเร็คทอรี่ datas/ ถ้าต้องการตรวจสอบว่าโค้ดมี Error อะไรหรือไม่ สามารถดูได้ที่ไฟล์นี้ ถ้าไม่พบว่ามีไฟล์นี้ แสดงว่าไม่มี Error (Server บางแห่งอาจต้องสร้างไดเร็คทอรี่ datas/ เปล่าๆ และปรับ chmod ให้เขียนได้ไว้ด้วยตัวเอง) ค่านี้เหมาะสำหรับการใช้งานจริง เพราะจะไม่แสดงข้อผิดพลาดใดๆออกทางหน้าเว็บ
- 1 คล้ายๆ 0 แต่จะเพิ่มบันทึก "คำเตือน" ลงในไฟล์ error_log.php ด้วย
- 2 หมายถึง จะแสดงข้อผิดพลาด และ คำเตือนต่างๆ ออกทางหน้าเว็บไซต์ ค่านี้เหมาะที่จะใช้ในตอนออกแบบเท่านั้น
// เปิดใช้งานแสดงผล error ออกทางหน้าจอ
define('DEBUG', 2);
// load Kotchasan
include 'Kotchasan/load.php';
// Initial Kotchasan Framework
Kotchasan::createWebApplication()->run();
VERSION เป็นค่าคงที่บอกเวอร์ชั่นของคชสาร (อ่านได้อย่างเดียว)
DB_LOG เป็นค่าคงที่สำหรับกำหนดค่าการเก็บบันทึกการ Query ฐานข้อมูล ค่าเริ่มต้นของค่าคงที่นี้คือ false ซึ่งหมายถึงไม่มีการบันทึก หากต้องการเปิดใช้งาน สามาถกำหนดค่าให้เป็น true ได้ เหมือนการกำหนดค่า DEBUG หากมีการเปิดใช้งานความสามารถนี้ จะมีการเก็บบันทึกการ Query เป็นไฟล์ที่ไดเร็คทอรี่ datas/logs/ โดยจะทำการแยกเก็บเป็นรายวัน ในกรณีที่ไม่จำเป็น ผมไม่แนะนำให้เปิดใช้งานความสามารถนี้ เพราะจะทำให้ภาพรวมการใช้งานระบบช้าลง เนื่องจากจะต้องมีการบันทึกข้อมูลการ Query ลง log อยู่ตลอดเวลา
VENDOR_DIR เป็นค่าคงที่บอกที่อยู่รวมพาธและไดเร็คทอรี่ของคชสาร ตามที่ได้ติดตั้งไว้ เช่น /path/to/Kotchasan/ (อ่านได้อย่างเดียว)
APP_PATH เก็บค่าไดเร็คทอรี่ของแอพพลิเคชั่น (รวมพาธ) ค่านี้จะอ้างอิงจากไฟล์ที่ใช้เรียกแอพพลิเคชั่น (เช่น index.php) ใน 1 โปรเจ็คอาจมีได้หลายแอพพลิเคชั่น ซึ่งแต่ละแอพพลิเคชั่นจะมีค่า APP_PATH ของตัวเอง และไม่ซ้ำกัน ค่านี้จะใช้สำหรับแยกแอพพลิเคชั่นย่อยแต่ละตัวออกจากแอพพลิเคชั่นหลัก ทำให้สามารถมี config เฉพาะของแต่ละแอพพลิเคชั่นได้ เช่น การสร้างส่วนแอดมิน เราสามารถเพิ่มการตั้งค่าที่ไดเร็คทอรี่ของแอพพลิเคชั่น เช่น admin/settings/ เพื่อให้การตั้งค่าแตกต่างจากแอพพลิเคชั่นหลักที่ settings/ ได้ การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
ROOT_PATH เก็บค่าไดเร็คทอรี่ของแอพพลิเคชั่น ซึ่งค่าเริ่มต้นจะเป็นค่าเดียวกันกับ APP_PATH แต่ค่านี้จะใช้ทำงานตรงกันข้ามกับ APP_PATH คือมันจะใช้สำหรับระบุไดเร็คทอรี่รากของระบบซึ่งจะใช้งานร่วมกัน เพื่อให้สามารถอ้างอิงถึงกันได้ตลอดทั้งโปรเจ็ค เช่น admin/ และ เว็บหลักจะใช้ค่าติดตั้งฐานข้อมูลที่ settings/database.php ร่วมกัน ใช้ไดเร็คทอรี่ datas/ ร่วมกัน และใช้ไดเร็คทอรี่ language/ ร่วมกัน เป็นต้น ซึ่งในการโหลดค่า settings ต่างๆของคชสาร คชสารจะทำการโหลดค่าติดตั้งต่างๆที่ ROOT_PATH ก่อน แล้วถึงจะไปโหลดจาก APP_PATH การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
BASE_PATH ค่าคงที่ระบุค่าไดเร็คทอรี่ที่ติดตั้งแอพพลิเคชั่น นับแต่ DOCUMENT_ROOT เช่นติดตั้งแอพพลิเคชั่นไว้ที่ http://domain.tld/gcms/ BASE_PATH คือ gcms/ และ BASE_PATH ของ http://domain.tld/gcms/admin คือ /gcms/admin/ ในกรณีที่ติดตั้งไว้ที่ไดเร็คทอรี่รากเลย BASE_PATH จะเป็น / การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
WEB_URL ค่าคงที่ระบุค่า URL รวมพาธของเว็บไซต์ เช่น http://domain.tld/folder (ไม่ต้องมี / ปิดท้าย) การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG เช่นกัน
DATA_FOLDER ค่าคงที่ระบุค่าไดเร็คทอรี่สำหรับเก็บไฟล์ที่สร้างขึ้นขณะใช้งาน หรือ ที่อัปโหลดโดยผู้ใช้ ค่าเริ่มต้นของค่าคงที่นี้คือ datas/ และสามารถกำหนดค่านี้ด้วยตัวเอง เหมือน DEBUG
TEMPLATE_ROOT ค่าคงที่ระบุไดเร็คทอรี่รากของเท็มเพลท (ไดเร็คทอรี่หลักของเท็มเพลทคือ skin/) ซึ่งค่าเริ่มต้นค่าของค่าคงที่นี้จะเป็นค่าเดียวกับ APP_PATH (หรือจำไว้ง่ายๆว่า แอพพลิเคชั่นแต่ละตัวจะมี Template เฉพาะของแต่ละแอพพลิเคชั่นแยกกัน เช่น Template ของเว็บหลักเป็นคนละตัวกันกับ Template ของ admin/) การกำหนดค่านี้ด้วยตัวเอง สามารถทำได้ เหมือน DEBUG
ค่าคงที่ทั้งหมดจะถูกกำหนดค่าและตรวจสอบโดยคชสารในตอนเริ่มทำงานทุกครั้ง ซึ่ง Server ส่วนใหญ่ สามารถใช้ค่าเริ่มต้นนี้ได้เลย ในกรณีที่ต้องการกำหนดเอง หรือต้องการเปลี่ยนแปลงค่า หรือ มันไม่สามารถอ่านค่าได้ถูกต้อง สามารถกำหนดได้เอง โดยกำหนดไว้ก่อนการเรียกไฟล์ Kotchasan/load.php ตามตัวอย่าง DEBUG
หมายเหตุ ในภาวะการใช้งานปกติ ถ้าค่าคงที่เริ่มต้นไม่สามารถใช้งานได้ อยากให้แจ้งให้ผู้เขียนทราบ รวมถึงส่งข้อมูลที่เกี่ยวข้องให้ด้วย และถ้าเป็นไปได้ อยากให้ส่งข้อมูลของ Server ให้ผู้เขียนเข้าไปตรวจสอบด้วยตัวเอง เพื่อให้ผู้เขียนมีโอกาศได้ตรวจสอบปัญหาและหาทางออกแบบเพื่อให้มันคืนค่าได้ถูกต้องต่อไป