Konfigurasi Aplikasi
Konfigurasi aplikasi disimpan di ./etc/config/main.php
. Pada saat nilai file
./etc/.env
adalah production
system akan menambahkan juga file
./etc/config/production.php
jika file tersebut ada. Begitu juga dengan nilai
env
lainnya.
Struktur
Bentuk di bawah adalah bentuk konfigurasi aplikasi minimal, nilai-nilai tersebut bisa saja bertambah sesuai dengan kebutuhan aplikasi.
// ./etc/config.php
return [
'name' => 'Mim App',
'version' => '0.0.1',
'host' => 'site.mim',
'timezone' => 'Asia/Jakarta',
'install' => '2018-05-01 15:39:00',
'secure' => true,
'includes' => [
'/path/to/dir/' => true,
'/path/to/file/' => true
],
'shared' => '/path/to/shared/modules/',
'envMap' => [
'SITE_SECURE' => 'gates.site.secure'
],
'gates' => [
'site' => [
'host' => [
'value' => 'HOST'
],
'path' => '/',
'priority' => 100,
'secure' => true,
'middlewares' => [
'pre' => [
'Site\\Middleware\\Pre::auth' => 1
],
'post' => [
'Site\\Middleware\\Post::format' => 1
]
]
]
],
'repos' => [
'/home/user/mim'
]
];
name
Nama aplikasi, nilai ini mungkin ( tapi tidak harus ) digunakan di tag <title>
html.
version
Adalah versi aplikasi. Bentuk yang digunakan adalah NUM.NUM.NUM
. Version yang digunakan
mengikuti spesifikasi semver.
host
Adalah hostname aplikasi. Nilai ini akan digunakan jika pada gates.[name].host.value
menggunakan nilai HOST
.
timezone
Adalah nilai default timezone aplikasi.
install
Nilai ini adalah tanggal dibuatnya aplikasi dalam format Y-m-d H:i:s
. Tujuannya
sebagai referensi saja.
secure
Nilai ini menerima nilai type boolean
yang akan menentukan scheme url pada saat
menggenerasi url. Nilai true
akan menghasilkan url dengan scheme https
.
includes
Menggabungkan konfig dari file lain ke dalam konfigurasi aplikasi.
shared
Adalah folder dimana module-module shared disimpan. Semua module yang ada di folder tersebut akan di-load ke dalam aplikasi, dan diperlakukan sebagai module internal.
envMap
Inject konfigurasi aplikasi dari system env ( getenv
). Fungsi ini menerima nilai
array key sebagai system env, dan nilai adalah config key yang dipisahkan dengan .
untuk sub-config.
gates
Konfigurasi ini mendaftarkan semua gate yang ada di aplikasi. Informasi yang ditentukan di sini adalah hostname suatu gate, path prefix, prioritas, secure ( https atau http ), dan daftar middlewares yang akan dipanggil sebelum dan sesudah router handler.
Nilai string HOST
pada property gates.[gate].host.value
akan mengambil nilai host
pada konfigurasi aplikasi. Nilai ini juga menerima gabungan string dengan nilai
HOST
, seperti admin.HOST
.
Penjelasan lebih details tentang gate ada di Gate Aplikasi.
Jika nilai gates.[gate].secure
tidak di set, makan nilai secure
dari aplikasi
akan digunakan.
repos
Konfigurasi ini menyimpan daftar folder dimana module-module local disimpan untuk mempermudah proses install atau update module-module lokal.
Menindih Konfigurasi Module
Jika developer ingin menindih konfigurasi module, maka cara yang paling benar adalah dengan menambahkannya di konfigurasi aplikasi. Semua konfigurasi module, yang ada di konfigurasi aplikasi akan menindih yang ditentukan di konfigurasi module.
Dengan ketentuan seperti ini, sangat memungkinkan menambahkan semua nilai konfigurasi module di konfigurasi aplikasi.