Menyediakan persekitaran Laravel anda ialah langkah penting dalam memastikan aplikasi anda berjalan dengan lancar dan cekap merentas pembangunan, ujian dan persekitaran pengeluaran. Laravel menjadikan proses ini mudah dengan sistem konfigurasi persekitarannya.
Dalam blog ini, kami akan membincangkan cara menyediakan dan mengurus persekitaran Laravel dengan berkesan.
Di teras konfigurasi persekitaran Laravel ialah fail .env yang terletak di akar projek anda. Fail ini mengandungi pasangan nilai kunci yang mentakrifkan tetapan untuk aplikasi anda.
Menyimpan maklumat sensitif, seperti kunci API dan bukti kelayakan pangkalan data, daripada kod sumber anda.
Membenarkan perubahan pantas pada tetapan khusus persekitaran.
Menyokong berbilang persekitaran (cth., tempatan, pementasan, pengeluaran).
Berikut ialah fail .env biasa untuk projek Laravel:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:some_random_generated_key APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="Example"
Anda boleh mengakses pembolehubah persekitaran dalam kod Laravel anda menggunakan fungsi pembantu env(). Contohnya:
$debugMode = env('APP_DEBUG'); $databaseName = env('DB_DATABASE');
Dalam pengeluaran, anda harus menyimpan konfigurasi anda untuk prestasi yang lebih baik. Jalankan arahan berikut untuk cache fail .env anda dan tetapan konfigurasi lain:
php artisan config:cache
Untuk mengosongkan cache, gunakan:
php artisan config:clear
Nota: Selepas mengubah suai fail .env, sentiasa kosongkan dan cache semula konfigurasi.
Direktori config/ Laravel mengandungi pelbagai fail konfigurasi, seperti app.php, database.php dan mail.php. Fail ini membolehkan anda memusatkan dan mengatur tetapan.
Daripada nilai pengekodan keras, gunakan pembantu env() dalam fail konfigurasi ini. Contohnya, dalam config/database.php:
'mysql' => [ 'host' => env('DB_HOST', '127.0.0.1'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), ],
Pendekatan ini memastikan fleksibiliti dan mengelakkan daripada mendedahkan data sensitif.
Laravel juga membolehkan anda mengatasi nilai konfigurasi berdasarkan persekitaran. Sebagai contoh, anda boleh menggunakan App::environment() dalam kod anda:
if (App::environment('production')) { // Use production-specific settings }
Untuk mengendalikan persekitaran yang berbeza (cth., tempatan, pementasan, pengeluaran), anda boleh mencipta fail khusus persekitaran seperti:
.env.local .env.staging .env.production
Laravel memuatkan fail .env secara automatik, tetapi anda boleh menentukan persekitaran yang berbeza menggunakan pembolehubah APP_ENV atau dengan menetapkan bendera --env apabila menjalankan perintah Artisan:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:some_random_generated_key APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="Example"
Untuk persediaan lanjutan, anda boleh menetapkan persekitaran pada tahap pelayan. Contohnya, dalam Apache, tambahkan ini pada fail .htaccess anda:
$debugMode = env('APP_DEBUG'); $databaseName = env('DB_DATABASE');
Dalam Nginx, gunakan:
php artisan config:cache
Memastikan .env kepada Kawalan Versi
Fail .env anda mengandungi maklumat sensitif dan tidak sepatutnya komited kepada kawalan versi. Tambahkan .env pada fail .gitignore anda:
php artisan config:clear
Menggunakan env() dalam Logik Aplikasi
Elakkan memanggil env() terus dalam kod aplikasi anda, kerana ia hanya berfungsi semasa beban konfigurasi awal. Sebaliknya, gunakan config() untuk mengakses pembolehubah persekitaran:
'mysql' => [ 'host' => env('DB_HOST', '127.0.0.1'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), ],
Tidak Mencache Konfigurasi dalam Pengeluaran
Gagal untuk cache fail konfigurasi dalam pengeluaran boleh menyebabkan prestasi aplikasi yang lebih perlahan.
Untuk mengesahkan bahawa persekitaran anda disediakan dengan betul, anda boleh:
Semak persekitaran aplikasi:
if (App::environment('production')) { // Use production-specific settings }
Tinggalkan nilai konfigurasi:
.env.local .env.staging .env.production
Gunakan alatan seperti Laravel Debugbar untuk menyahpepijat dan menguji secara setempat.
Dengan menyediakan persekitaran Laravel anda dengan betul, anda boleh memastikan aliran kerja yang lancar dan selamat merentas semua peringkat pembangunan. Nantikan Hari 5, di mana kami akan meneroka asas penghalaan dan membina laluan dan pengawal pertama anda!
Atas ialah kandungan terperinci Mengkonfigurasi Hari Laravel: Persediaan Persekitaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!