Cara mengubah suai .env dalam laravel: 1. Dapatkan laluan fail env melalui "base_path('.env');"; 2. Deklarasikan melalui "function updateEnv($data = array()) {}" Fungsi; 3. Ubah suai dan huraikan fail env melalui "$pattern = '/([^=]*)=[^n]*/';" padanan biasa.
Persekitaran pengendalian tutorial ini: sistem Windows 7, Laravel versi 5.7, komputer Dell G3.
Bagaimana untuk mengubah suai .env dalam laravel?
Laravel mengubah suai nilai pembolehubah persekitaran env secara dinamik!
Pengenalan
Untuk memisahkan parameter konfigurasi untuk membezakan persekitaran pembangunan, persekitaran dalam talian dan fungsi lain, atau untuk menukar pemacu cache, pemacu baris gilir dan alamat pelayan mel secara manual , Dsb., dsb., ini boleh dilabelkan dengan mudah. Jadi laravel menggunakan fail .env untuk membungkus data konfigurasi ini, yang merupakan pasangan nilai kunci.
Masa pembelajaran
Dalam keadaan biasa, kami tidak dibenarkan mengubah suai kandungan fail env melainkan ia diproses secara manual. Walau bagaimanapun, dalam pengaturcaraan, tidak dapat dielakkan untuk menghadapi situasi yang mesti diubah suai Jadi bagaimana untuk mengendalikan pasangan nilai kunci secara dinamik dalam fail env?
Andaikan APP_KEY yang dijana oleh sistem menggunakan key:generate tidak selamat Apabila melakukan penempatan automatik dan penggunaan kelompok, terdapat keperluan untuk mengubah suai kunci APP_KEY secara dinamik. Bagaimana untuk mencapai ini?
Malah, fail env hanyalah fail teks, ditulis dalam format standard seperti key=value, menggunakan padanan rentetan di seluruh, dengan satu baris sehingga aksara baris baharu berhenti.
Kemudian mengubah suai kandungan fail env tidak lebih daripada mencari kunci yang berkaitan dan kemudian menggantikan nilai, itu sahaja.
Versi pertama diberikan di bawah, iaitu file_put_contents yang ringkas dan kasar, mula-mula dapatkan laluan fail env:
$path = base_path('.env');
Anda perlu menentukan sama ada fail itu wujud:
if (file_exists($path)){ // 文件存在 }
Jika fail wujud, mula-mula baca semua kandungan fail ke dalam pembolehubah rentetan:
$origin = file_get_contents($path);
Andaikan APP_KEY baharu kami wujud dalam pembolehubah $new_key, mula-mula dapatkan yang asal Nilai APP_KEY:
$old_key = env('APP_KEY');
Sudah tentu, operasi rentetan memerlukan pemadanan langsung menggunakan fungsi penggantian rentetan Kami menggunakan str_replace Jumlah data dalam fail env tidaklah besar, jadi tiada prestasi yang besar masalah.
$result = str_replace('APP_KEY=' . $old_key, $new_key, $origin);
Dengan cara ini, nilai fail env terkini disimpan dalam $result Kemudian tulis sahaja fail env:
file_put_contents($result);
Lalainya ialah untuk menulis ganti, jadi. program dilaksanakan , fail env ialah data yang diubah suai secara dinamik.
Pergi lebih dalam
Kod di atas masih cacat, kerana pada dasarnya tiada pengendalian ralat, yang boleh menyebabkan ralat dengan mudah. Di samping itu, untuk operasi fail yang sama pentingnya dengan env, secara langsung menggunakan penggantian rentetan untuk membaca dan menulis ganti keseluruhan fail sememangnya berisiko.
Bagaimanakah kita boleh mengubah cara kita beroperasi untuk menjadikannya lebih selamat? Kami memerlukan kod yang lebih serasi. Dalam bahagian ini, kami cuba menggunakan pemadanan biasa untuk menghuraikan fail env, membacanya baris demi baris, mengendalikannya baris demi baris dan menilainya jika nilai kunci wujud, ia akan ditimpa jika tidak wujud, ia akan dicipta. Dengan cara ini, ia boleh serasi dengan kedua-dua fungsi baharu dan kemas kini, dan nilai kunci yang disokong adalah lebih fleksibel.
dirangkumkan sebagai fungsi pembantu, dengan mengandaikan bahawa parameter yang dihantar adalah tatasusunan dan ia adalah tatasusunan bersekutu. Isytihar fungsi seperti berikut:
function updateEnv($data = array()){}
Tulis logik dalam badan fungsi, semak dahulu jika ia tidak kosong:
if (! count($data)) {return;}
Jika ia bukan tatasusunan bersekutu, ia juga tidak diterima, kerana fail env mesti menyatakan dengan jelas kunci dan nilai. Untuk tatasusunan bersekutu, anda hanya perlu menentukan bahawa kunci tatasusunan berbeza daripada kunci bersiri secara automatik:
if (array_keys($data) === range(0, count($data) - 1)) {return;}
Sediakan corak yang sepadan:
$pattern = '/([^\=]*)\=[^\n]*/';
Ini ialah format untuk menulis fail env. Kami telah memperkenalkannya di bahagian sebelumnya. Kami membaca fail env lama ke dalam tatasusunan dan mengisytiharkan tatasusunan baharu untuk menyimpan data fail konfigurasi terkini:
$envFile = base_path() . '/.env'; $lines = file($envFile); $newLines = [];
Kemudian melintasi data fail lama dan menghuraikannya baris demi baris:
foreach ($lines as $line) { preg_match($pattern, $line, $matches); if (!count($matches)) { $newLines[] = $line; continue; } if (!key_exists(trim($matches[1]), $data)) { $newLines[] = $line; continue; } $line = trim($matches[1]) . "={$data[trim($matches[1])]}\n"; $newLines[] = $line; }
Perkara di atas hanyalah aliran pemprosesan kasar Proses penghuraian ini boleh disesuaikan secara bebas sebagai fungsi tersuai atau enjin penghuraian lain, jadi ia bersifat universal.
Akhir sekali, tulis data yang dihuraikan baharu sepenuhnya ke dalam fail env:
$newContent = implode('', $newLines); file_put_contents($envFile, $newContent);
Pada ketika ini, operasi kemas kini fail env selesai.
Ditulis pada penghujung
Artikel ini melaksanakan fungsi mencipta dan mengemas kini data fail konfigurasi global secara dinamik dalam program dalam dua cara Kaedah kedua adalah lebih tahan terhadap kesalahan dan serba boleh. mempunyai kebolehskalaan yang kuat, jadi kami mengesyorkannya. Pendekatan pertama tidak mempunyai pengendalian ralat dan hampir tidak boleh digunakan dalam persekitaran pengeluaran. Alangkah baiknya jika semua orang tahu idea itu.
Pembelajaran yang disyorkan: "tutorial video laravel"
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai .env dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Toenhanceengagementandcohesionamongdistributedteamsbeyondzoom, pelaksanaanTheseStregies: 1) Organizirtualcoffeebreaksforinformalchats, 2) Useasynchronoustoolslikeslackfornon-workdiscussions, 3) identgamificoWithteamgames

Laravel10introducesseveralbreakingchanges: 1) itrequiresphp8.1orhigher, 2) therouteserviceProvidernowuseSabootmethforloadingRoutes, 3) thewithTimeStamps () methodeNeloquentRelationShipsisdePrecated, dan 4)

TomaintainfocusandmotivationInremotework, createAstructureDenvironment, managedigitaldistractions, fostermotivationthroughsocialIntionsandgoalsetting, containstwork-lifebalance, anduseapproprateetechnology.1) SetupadedicationWorksPaceAndSticktoaroutine.

TofostercollaborationandTrustinremoteteams, ExplectionTheSestrated: 1) menubuhkan, StructuredCommunicationWithPersonalCheck-ins, 2) useCollaborativeToolSfortransparency, 3) pengiktirafan dan 4) fosteracultureoftrustandadaptability.

Versi terbaru dari ciri -ciri utama Laravel termasuk: 1. Ciri -ciri ini meningkatkan kecekapan pembangunan dan prestasi aplikasi, tetapi perlu digunakan dengan berhati -hati untuk mengelakkan masalah yang berpotensi.

Tocombatisolationandlonelinessinremotework, companesshouldimplementregular, articlefulinteractions, provideequalgrowthopposities, andusetechnologyefectively.1) FostergenuineconnectionnectionThoughvoughvirtualcoffeebreaksandpersonalusharing.2) Ensureremorsharing

Laravelispopularforfull-stackdevelopmentbeCausofersaseamlessblendofbackendpowerandfrontendflexibility.1) ITSBackendCapabilities, likeeloquentorm, SimplifyDatabaseIntions.2) thebladetemplatingengineAllowsforclean, dynamichtmltes.3)

Faktor utama dalam memilih platform persidangan video termasuk antara muka pengguna, keselamatan, dan fungsi. 1) Antara muka pengguna harus intuitif, seperti zoom. 2) Keselamatan perlu diberi perhatian, dan pasukan Microsoft menyediakan penyulitan akhir-ke-akhir. 3) Fungsi perlu memadankan keperluan, GoogLemeet sesuai untuk mesyuarat pendek, dan Ciscowebex menyediakan alat kerjasama lanjutan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
