การจัดการ Configuration ใน Laravel PHP Framework

ไฟล์ Configuration ต่างๆ ของ Laravel จะถูกเก็บไว้ภายใต้โฟลเดอร์ app/config ที่มีการเขียนคอมเม้นอธิบายเกี่ยวกับการตั้งค่าไว้ด้วย พอเป็นแนวทางทำให้ง่ายต่อการตั้งค่า configuration ต่างๆ ในบางครั้ง เราอาจจะต้องการใช้ค่าที่เราเก็บไว้ในไฟล์ configuration ซึ่ง Laravel ก็มีคลาส Config ไว้ให้เราใช้งานครับ
การดึงค่า (get) จากไฟล์ Configuration สามารถใช้ฟังก์ชัน get ของคลาส Config ในการดีงค่าจากไฟล์ configuration มาใช้งานได้ เช่น ต้องการดึงค่า timezone ก็สามารถทำได้ดังนี้ครับ

Config::get("app.timezone");

เรายังสามารถกำหนดค่า default ให้กับฟังก์ชัน get ด้วยเลยก็ได้ ในกรณีที่ไม่ได้มีการตั้งค่าไว้ก็ให้ส่งค่า default นี้มาแทนเลยครับ

$timezone = Config::get("app.timezone", "UTC");

ไม่ใช่แค่ดึงค่ามาใช้ได้เท่านั้น เรายังสามารถตั้งค่า configuration ในขณะ run-time ได้ด้วยครับ

การตั้งค่า (set) configuration สามารถใช้ฟังก์ชัน set ของคลาส Config ในการตั้งค่าในขณะที่โปรแกรมกำลังทำงานอยู่ แต่จะไม่มีการแก้ไขค่าในไฟล์ configuration นะครับ ซึ่งจะมีประโยชน์ ถ้าเราต้องการจะเปลียนไปใช้ค่า configuration อื่นช่วยคราว แทนที่จะใช้ค่าที่เราเซตไว้ในไฟล์ configuration เช่น ต้องการเปลี่ยน driver ของ database จาก mysql ที่ตั้งค่าไว้ในไฟล์ configuration เปลี่ยนเป็น sqlite ก็สามารถทำได้ ดังนี้ครับ

Config::set("database.default", "sqlite");

ต้องจำไว้อย่างที่ผมบอกไว้เบื้องต้นนะครับว่า การเซตค่า configuration จะมีผลกับ request ที่ส่งเข้ามาเท่านั้น จะไม่มีการแก้ไขค่าในไฟล์ configuration นะครับ ^^