# Configuration
- [Pengantar](#introduction)
- [Environment Configuration](#environment-configuration)
- [Maintenance Mode](#maintenance-mode)
## Pengantar
Semua file-file konfigurasi untuk framework Laravel disimpan dalam direktori `app/config`. Setiap *opsi* dalam setiap file didokumentasikan, jadi silahkan melihat-lihat file-file tersebut dan akrabkan diri Anda dengan *opsi-opsi* yang tersedia.
Kadang-kadang Anda mungkin perlu untuk mengakses nilai konfigurasi pada saat *run-time*. Anda dapat melakukannya dengan menggunakan *class* `Config`:
**Mengakses Nilai Konfigurasi**
Config::get('app.timezone');
Anda juga dapat menentukan nilai *default* untuk dikembalikan hasilnya jika *opsi* konfigurasi tidak diketemukan:
$timezone = Config::get('app.timezone', 'UTC');
Perhatikan bahwa sintaks dengan gaya "dot" dapat digunakan untuk mengakses nilai dalam berbagai file. Anda juga dapat menetapkan nilai konfigurasi saat *run-time*:
**Menetapkan Sebuah Nilai Konfigurasi**
Config::set('database.default', 'sqlite');
Nilai konfigurasi yang ditetapkan pada saat *run-time* hanya ditetapkan untuk permintaan tersebut, dan tidak akan dibawa ke permintaan berikutnya.
## Konfigurasi Lingkungan
Terkadang sangat membantu untuk memiliki nilai konfigurasi yang berbeda berdasarkan pada lingkungan berjalannya aplikasi. Sebagai contoh, Anda mungkin ingin menggunakan *driver cache* yang berbeda pada mesin pengembangan lokal Anda daripada di server produksi. Sangat mudah untuk melakukannya dengan menggunakan konfigurasi berbasis lingkungan.
Cukup membuat folder dalam direktori `config` yang sesuai dengan nama lingkungan Anda, seperti `lokal`. Selanjutnya, buat file konfigurasi yang Anda ingin timpa dan tentukan *opsi-opsi* untuk lingkungan tersebut. Misalnya, untuk menimpa *driver cache* untuk lingkungan setempat, Anda akan membuat sebuah File `cache.php` di `app/config/local` dengan konten seperti berikut:
'file',
);
> ** Catatan: ** Jangan gunakan kata 'testing' sebagai nama lingkungan. Kata ini disediakan hanya untuk *unit testing*.
Perhatikan bahwa Anda tidak harus menentukan _semua_ opsi yang ada di file konfigurasi dasar, tapi hanya opsi yang Anda ingin timpa saja. File-file konfigurasi lingkungan akan "cascade" terhadap file dasar.
Selanjutnya, kita perlu untuk menginstruksikan kepada *framework* tentang bagaimana cara menentukan lingkungan apa yang sedang berjalan untuk *framework* tersebut. Lingkungan *default* selalu lingkungan `produksi`. Namun, Anda mungkin mengatur lingkungan lainnya dalam file `bootstrap/start.php` pada akar instalasi Anda. Dalam file ini Anda akan menemukan sebuah panggilan `$app->detectEnvironment`. Array yang dilewatkan ke metode ini digunakan untuk menentukan *lingkungan* saat itu. Anda dapat menambahkan lingkungan lain dan nama mesin ke array yang diperlukan.
detectEnvironment(array(
'local' => array('your-machine-name'),
));
Anda juga dapat memberi `Closure` pada metode `detectEnvironment`, memungkinkan Anda untuk menerapkan fungsi deteksi lingkungan Anda sendiri:
$env = $app->detectEnvironment(function()
{
return $_SERVER['MY_LARAVEL_ENV'];
});
Anda dapat mengakses lingkungan aplikasi saat ini melalui metode `lingkungan`:
**Mengakses Lingkungan Aplikasi Saat Ini**
$environment = App::environment();
## Modus Pemeliharaan
Ketika aplikasi Anda sedang dalam modus pemeliharaan, tampilan kustom akan ditampilkan untuk semua rute ke dalam aplikasi Anda. Hal ini membuat mudah untuk "menonaktifkan" aplikasi Anda ketika sedang diperbarui. Panggilan untuk metode `App::down` sudah terdapat pada file `app/start/global.php`. *Respon* dari metode ini akan dikirim ke pengguna ketika aplikasi Anda dalam modus pemeliharaan.
Untuk mengaktifkan modus pemeliharaan, cukup jalankan perintah `down` lewat Artisan:
php artisan down
Untuk menonaktifkan modus pemeliharaan, gunakan perintah `up`:
php artisan up
Untuk menampilkan tampilan kustom saat aplikasi Anda dalam modus pemeliharaan, Anda dapat menambahkan sesuatu seperti berikut ini untuk aplikasi Anda pada file `app/start/global.php`:
App::down(function()
{
return Response::view('maintenance', array(), 503);
});