การดึงค่าของการตั้งค่าหลักมาใช้
ส่วนการตั้งค่าหลักๆ ของเว็บเราจะอยู่ที่โฟลเดอร์ app/config ในบทนี้เราจะมาดูว่า laravel เตรียมฟังก์ชันอะไร ให้เราใช้ในการดึงค่าจากไฟล์ทั้งหลายในโฟลเดอร์ config ออกมาใช้ได้บ้าง.
laravel เตรียม class ที่ชื่อว่า Config ไว้ให้เราเเล้วนะครับ
ยกตัวอย่างการดึงค่า timezone ออกมา
1 Config::get('app.timezone');
เราสามารถกำหนดค่าของตัวแปรนั้นใหม่ได้ กรณีที่รูปแบบไม่เป็นไปตามที่เราต้องการ:
1 $timezone = Config::get('app.timezone', 'UTC');
สังเกตุว่าถ้าเป็นการเข้าถึงค่าในอาเรย์ของไฟล์ laravel จะใช้เครื่องหมายดอท ในการเข้าถึงนะครับ
กำหนดค่าแบบไม่ต้องเข้าไปในไฟล์เลย
1 Config::set('database.default', 'sqlite');
การกำหนดค่าแบบนี้จะไม่ไปเขียนทับการตั้งค่าในไฟล์ app.php นะครับ แต่จะเกิดผลเฉพาะตรงที่เราประกาศไว้เท่านั้น.
<a name="environment-configuration"></a> ## การกำหนดชุดรูปแบบของการตั้งค่าพื้นฐาน
ในการพัฒนาเว็บเรามักจะเปิด การตั้งค่าต่างๆเพื่อที่จะเอื้ออำนวยให้เราทราบข้อมูล ได้มากที่สุด แต่ในกรณีที่เว็บออนไลน์แล้วการแสดง การแสดงข้อมูลการทำงานผิดพลาด การลืมไปแล้วว่าเคยทิ้งคำสั่ง debug ไว้ตรงไหน
เริ่มต้นสร้างไฟล์ชุดการตั้งค่าในโฟลเดอร์ config ยกตัวอย่างชื่อ local.ยกตัวอย่างการตั้งค่าในไฟล์ สมมุติเราต้องการใช้แคชแบบ file ก็ทำแบบตัวอย่างเลยครับ
1 <?php
2
3 return array(
4
5 'driver' => 'file',
6
7 );
Note: testing เป็นชื่อที่ถูกกำหนด ไว้กับ laravel แล้วว่าถ้าอยู่ในชื่อนี้การตั้งค่าทั้งหมดจะอยู่ในการโหมด unit test ฉะนั้น เราอย่าไปตั้งทับมันเลยครับ
ส่วนการตั้งค่าที่เราไม่ได้ตั้งไว้ จะอ้างอิงกลับไปที่ไฟล์หลักนะครับ
ต่อมาเราต้องไปตั้งค่าให้ตัว laravel รู้ว่าขณะนี้อยู่ในโหมดไหน โดยเข้าไปตั้งค่าที่ bootstrap/start.php ตัวโฟลเดอร์จะอยู่ข้างหน้าสุดเลย. เข้าไปค้นหา $app->detectEnvironment ตัวฟังชันจะใช้ค้นหารูปแบบการตั้งค่าของเว็บเรา
1 <?php
2
3 $env = $app->detectEnvironment(array(
4
5 'local' => array('your-machine-name'),
6
7 ));
เราก็จะเปลี่ยนให้้เป็นเหมือนตัวอย่าง
1 $env = $app->detectEnvironment(function()
2 {
3 return $_SERVER['MY_LARAVEL_ENV'];
4 });
ตัวอย่างการเรียกใช้
1 $environment = App::environment();
<a name="maintenance-mode"></a> ## การปรับปรุงเว็บไซต์
เมื่อเราต้องการปิดเว็บเพื่อทำการปรับปรุง เราจะกำหนดเมทอด App::down ไว้ที่ app/start/global.php ซึ่งจะทำให้ทุกคำร้องถูกพาไปที่หน้า ที่บอกว่าตอนนี้ เว้บกำลังอยู่ในสถานะปรับปรุง.
ต้องการทำให้รวดเร็วขึ้นก็ใช้ command line ก็ได้
1 php artisan down
up เป็นคำสั่งให้เว็บกลับไปอยู่ในสถานะออนไลน์อีกครั้ง
1 php artisan up
ถ้าต้องการเปลี่ยนหน้าที่ใช้ในการแสดงผลก็เข้าไปตั้งค่าที่
app/start/global.php ตัวอย่าง
1 App::down(function()
2 {
3 return Response::view('maintenance', array(), 503);
4 });