Kurnia Andi Nugroho
0 comment
.env di LaravelHalo teman-teman
Di artikel ini kita akan membahas salah satu file paling penting di Laravel, yaitu file .env. Walaupun terlihat sederhana, file ini punya peran besar dalam menentukan bagaimana aplikasi Laravel kita berjalan di berbagai lingkungan, mulai dari lokal, staging, sampai production.
Anggap saja saya sedang menjelaskan di kelas ya, jadi kita bahas pelan-pelan, mengalir, dan mudah dipahami.
.env?Teman-teman, file .env adalah file environment configuration. Artinya, file ini digunakan untuk menyimpan konfigurasi aplikasi berdasarkan lingkungan (environment) tempat aplikasi dijalankan.
Contoh lingkungan:
Laravel memisahkan konfigurasi ini supaya:
.env Sangat Penting?Bayangkan kalau:
Bahaya, teman-teman
Dengan file .env, Laravel mengajarkan best practice sejak awal:
Itulah kenapa file .env tidak boleh di-commit ke Git dan selalu masuk .gitignore.
.envMari kita lihat contoh sederhana:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:xxxxxxxx
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Tenang, kita bahas satu per satu.
APP_*)APP_NAMENama aplikasi Laravel kita. Biasanya muncul di title atau notifikasi.
APP_NAME="Aplikasi Akademik"
APP_ENVMenentukan environment aplikasi:
APP_ENV=local
Nilai yang sering digunakan:
localdevelopmentstagingproductionLaravel akan menyesuaikan perilakunya berdasarkan nilai ini.
APP_KEYIni wajib ada, teman-teman.
Digunakan untuk:
Generate dengan perintah:
php artisan key:generate
Jangan pernah membagikan APP_KEY ke publik.
APP_DEBUGAPP_DEBUG=true
true → tampilkan error detail (untuk lokal)false → sembunyikan error detail (wajib di production)Ingat ya teman-teman, production HARUS false.
DB_*)Bagian ini sangat sering kita ubah.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_sekolah
DB_USERNAME=root
DB_PASSWORD=secret
Laravel akan membaca konfigurasi ini dan menghubungkannya ke database melalui file config/database.php.
Kalau database error, 90% masalahnya ada di .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
CACHE_DRIVER=file
SESSION_DRIVER=file
Di production biasanya diganti menjadi redis atau database.
MIDTRANS_SERVER_KEY=xxxx
MIDTRANS_CLIENT_KEY=xxxx
Nah ini contoh alasan utama .env tidak boleh bocor.
.env di LaravelTeman-teman tidak disarankan memanggil .env langsung.
Jangan seperti ini:
env('DB_DATABASE');
Yang benar:
config('database.connections.mysql.database');
Kenapa?
env() hanya digunakan di file config.
.env.example dan Kolaborasi TimDi dalam project Laravel biasanya ada file:
.env.example
Fungsinya:
Flow yang benar:
.env.example → .envphp artisan key:generateDalam praktiknya, banyak yang:
Lupa generate APP_KEY
Salah set DB_DATABASE
Sudah ubah .env tapi lupa:
php artisan config:clear
APP_DEBUG=true di production
Hati-hati ya teman-teman.
Jadi teman-teman, file .env adalah:
Kalau kalian paham .env, insyaAllah 90% error awal Laravel bisa diatasi.
Semoga materi ini membantu, dan jangan ragu untuk eksplor lebih jauh konfigurasi Laravel lainnya. Sampai ketemu di artikel berikutnya
Kurnia Andi Nugroho
Web & Mobile App Developer, Laravel, Inertia, Vue.Js, React.Js
Founder of Lagikoding.com Laravel Enthusiast & Web Developer