Laravel membolehkan anda menentukan fail persekitaran alternatif, melangkaui fail .env
standard. Ini amat berguna untuk ujian, di mana fail .env.testing
yang berdedikasi boleh mengasingkan konfigurasi ujian. Walaupun tidak selalu diperlukan, ciri ini memberikan fleksibiliti dengan memanfaatkan pembolehubah persekitaran APP_ENV
.
Aplikasi paling mudah menggunakan fail persekitaran yang berbeza dengan arahan artisan atau phpunit. Untuk menggunakan fail .env.demo
, contohnya:
# Create .env.demo cp .env .env.demo echo "\nEXAMPLE_SETTING=demo" >> .env.demo # Use the `demo` env php artisan tinker --env=demo # Or set APP_ENV APP_ENV=demo php artisan tinker
Laravel akan mengutamakan .env.demo
lebih .env
.
.env.demo
bukan .env
.env.testing
Untuk ujian phpunit, lalai adalah menggunakan .env
. Walau bagaimanapun, ini boleh membawa kepada konflik dengan tetapan pembangunan tempatan, terutamanya mengenai pangkalan data. Walaupun phpunit.xml
menawarkan konfigurasi pangkalan data, menggunakan .env.testing
menyediakan pendekatan yang bersih.
phpunit.xml
set APP_ENV
untuk "menguji", mendorong Laravel untuk memuatkan .env.testing
semasa ujian ciri:
<env name="APP_ENV" value="testing"></env>
Buat .env.testing
dan tambahkan tetapan khusus ujian:
cp .env .env.testing echo "\nEXAMPLE_SETTING=testing" >> .env.testing
untuk mengesahkan .env.testing
dimuatkan, tambahkan ini ke ujian dalam tests/Feature
:
/** * A basic test example. */ public function test_the_application_returns_a_successful_response(): void { logger('Which environment file is Laravel using?', [ 'file' => $this->app->environmentFile() ]); $response = $this->get('/'); $response->assertStatus(200); }
berjalan phpunit
harus log:
<code>[2024-05-24 00:22:42] testing.DEBUG: Which environment file is Laravel using? {"file":".env.testing"}</code>
sama ada untuk mengawal versi .env.testing
(atau menggunakan sampel .env.testing.example
) adalah keputusan pasukan. Untuk CI, pembolehubah persekitaran peringkat sistem disyorkan untuk tetapan seperti pangkalan data ujian. Rujuk kepada dokumentasi Laravel rasmi untuk konfigurasi persekitaran yang lebih terperinci. Untuk menyelam yang lebih mendalam ke dalam pelaksanaan rangka kerja, periksa kaedah setEnvironmentFilePath
dan checkForSpecificEnvironmentFile
dalam kod sumber Laravel.
Atas ialah kandungan terperinci Mengkonfigurasi Laravel dengan fail persekitaran tambahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!