Environment variables (variabel lingkungan) adalah cara untuk menyimpan konfigurasi yang sensitif atau konfigurasi yang berubah-ubah antar lingkungan (development, staging, production). NexaUI menggunakan environment variables untuk memisahkan konfigurasi dari kode aplikasi, sesuai dengan prinsip The Twelve-Factor App.
NexaUI menggunakan file .env
untuk menyimpan environment variables. File ini tidak disertakan
dalam version control (Git) untuk alasan keamanan. Sebagai gantinya, biasanya disediakan file
.env.example
sebagai template.
Contoh isi file .env
:
# Application
APP_NAME=NexaUI
APP_ENV=development
APP_DEBUG=true
APP_URL=http://localhost
APP_KEY=base64:ABCDefgh12345678IJKLmnopQRSTuvwxYZ=
# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nexaui
DB_USERNAME=root
DB_PASSWORD=secret
# Mail
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
NexaUI menyediakan beberapa cara untuk mengakses environment variables dalam aplikasi Anda:
Cara paling langsung untuk mengakses environment variables adalah melalui superglobal $_ENV
:
$appName = $_ENV['APP_NAME'] ?? 'NexaUI';
$debug = ($_ENV['APP_DEBUG'] ?? 'false') === 'true';
NexaUI menyediakan method helper env()
yang lebih aman dan mendukung nilai default:
use App\System\Nexa;
$appName = Nexa::env('APP_NAME', 'NexaUI');
$debug = Nexa::env('APP_DEBUG', false);
$port = Nexa::env('DB_PORT', 3306);
Method ini akan otomatis mengonversi nilai seperti 'true', 'false', 'null' ke tipe data PHP yang sesuai.
Environment variables ideal untuk:
Untuk konfigurasi yang lebih kompleks atau yang tidak berubah antar environment, gunakan file konfigurasi (lihat dokumentasi Configuration Files).
NexaUI dapat mendeteksi environment saat ini berdasarkan nilai APP_ENV
:
// Memeriksa environment saat ini
if (Nexa::env('APP_ENV') === 'production') {
// Kode khusus untuk production
} else {
// Kode untuk non-production (development, staging, dll)
}
NexaUI juga menyediakan helper methods untuk memeriksa environment:
if (Nexa::isProduction()) {
// Kode khusus untuk production
}
if (Nexa::isDevelopment()) {
// Kode khusus untuk development
}
Beberapa praktik terbaik untuk keamanan environment variables:
.env
ke version control.env
di server produksiPada lingkungan produksi, Anda memiliki beberapa opsi untuk mengelola environment variables:
.env
yang diupload secara manual ke server