Variabel lingkungan adalah cara terbaik untuk mengonfigurasi aplikasi PHP karena mereka menjaga pengaturan aplikasi di luar kode. Dengan melakukan ini, akan lebih mudah untuk mencegah kredensial aman terekspos, memelihara aplikasi, dan menggunakan aplikasi di berbagai lingkungan Show
Dalam tutorial ini, Anda akan belajar tentang beberapa dari banyak cara di mana variabel lingkungan dapat diatur dan diambil dalam aplikasi PHP. Dengan begitu, aplikasi Anda dapat mengakses semua informasi yang diperlukan, seperti kunci API, file yang diunggah, string kueri, dan data formulir Cara mengakses variabel lingkungan di PHPGunakan Superglobals PHPSalah satu cara paling umum agar variabel lingkungan diakses di PHP adalah melalui penggunaan Superglobals. Ini adalah variabel bawaan yang sudah ditentukan sebelumnya, tersedia di semua cakupan. Diinisialisasi oleh runtime PHP, mereka mengatur informasi lingkungan PHP dengan cara (kebanyakan) logis dan efisien, sehingga Anda hanya perlu berkonsultasi dengan satu larik untuk mengambil informasi yang Anda butuhkan Misalnya, 3 berisi header permintaan, jalur, dan lokasi skrip, 4 berisi variabel sesi, dan 5 berisi variabel yang diteruskan ke skrip saat ini saat dipanggil dengan metode HTTP POSTYang mengatakan, ada beberapa hal yang harus diperhatikan
Perbedaan antara lingkungan SAPI/CGI, dan CLISelain direktif _6, lingkungan juga berperan dalam pengaturan informasi di Superglobals. Khususnya, jika aplikasi Anda berjalan menggunakan CGI, FastCGI, atau SAPI, maka 3, selain variabel normal, akan diisi dengan variabel lingkungan. Alternatifnya, jika Anda menggunakan PHP CLI, maka hanya 3 yang akan disetelGunakan getenv()Selain menggunakan Superglobals PHP, Anda juga dapat menggunakan getenv() untuk mengambil variabel lingkungan. Jika fungsi dipanggil tanpa argumen, maka ia mengembalikan semua variabel lingkungan yang tersedia. Namun, jika sebuah argumen diteruskan, nilai variabel lingkungan dengan nama tersebut dikembalikan Anda dapat melihat contoh penggunaannya di bawah ini _Seperti Superglobals PHP, ada tangkapan untuk menggunakan fungsi ini. Mengutip dokumentasi fungsi Jika PHP dijalankan dalam SAPI seperti Fast CGI, fungsi ini akan selalu mengembalikan nilai variabel lingkungan yang ditetapkan oleh SAPI, bahkan jika putenv() telah digunakan untuk menetapkan variabel lingkungan lokal dengan nama yang sama. Gunakan parameter_2 untuk mengembalikan nilai variabel lingkungan yang disetel secara lokal Perlu diketahui bahwa _3 tidak aman untuk threadGunakan apache_getenv()Jika Anda menggunakan Apache sebagai server web Anda, maka Anda memiliki satu fungsi tambahan yang dapat Anda gunakan. apache_getenv(). Fungsi ini mengambil set variabel lingkungan dalam proses Apache. Anda dapat melihat contoh penggunaannya di bawah ini
Jangan secara implisit mempercayai variabel lingkunganPenting untuk ditekankan bahwa — terlepas dari mana data berasal, apakah itu berasal dari salah satu Superglobal PHP, konfigurasi server web, atau lingkungan operasi — jangan mempercayainya secara implisit. Variabel lingkungan harus disaring dan divalidasi seperti data lain yang berada di luar aplikasi Anda Cara mengatur variabel lingkunganSelain membaca variabel lingkungan, mengetahui cara menyetelnya juga berguna, dengan begitu, Anda tahu cara mengubahnya, jika diperlukan. Dalam contoh berikut, kita akan menyetel variabel lingkungan, 4, menjadi "Robert Smith", penyanyi utama band rock Inggris The CureMengatur mereka di lingkunganSebelum memulai server web atau menjalankan skrip PHP, Anda dapat mengatur variabel lingkungan di lingkungan saat ini Jika Anda ingin belajar tentang mengatur variabel lingkungan secara lebih mendalam, Dominik Kundel telah menulis postingan blog mendetail tentangnya UNIX, Linux, dan macOSJika Anda menggunakan salah satu dari tiga sistem operasi ini atau varian seperti BSD, maka ada tiga cakupan yang dapat Anda atur variabel lingkungannya
Anda dapat melihat contoh ketiganya dalam kode di bawah ini _Microsoft WindowsPengaturan variabel lingkungan sedikit berbeda di Microsoft Windows. Anda dapat mengaturnya melalui Control Panel, atau Anda dapat mengaturnya di command prompt atau konsol PowerShell. Ada contoh dari dua yang terakhir di bawah ini
Gunakan DockerJika Anda menggunakan Docker, Anda dapat mengatur variabel lingkungan di Dockerfiles menggunakan perintah 5, seperti pada contoh di bawah ini
Jika Anda membuat konfigurasi multi-kontainer menggunakan Docker Compose, Anda dapat mengatur variabel lingkungan di docker-compose. yml menggunakan kunci lingkungan, seperti pada contoh di bawah ini
Ada sejumlah cara lain untuk menyetel variabel lingkungan saat bekerja dengan Docker, yang dapat Anda baca di dan dokumentasi Docker Compose Menggunakan putenv()Dengan menggunakan fungsi ini, Anda dapat mengatur nilai variabel lingkungan — dan menghapusnya — dalam permintaan saat ini. Dalam permintaan berikutnya, variabel, jika diatur di luar permintaan saat ini, akan kembali ke nilai aslinya Variabel yang diatur dengan cara ini juga tersedia untuk proses yang dipanggil oleh skrip tersebut, dan hanya tersedia dengan memanggil 3Anda dapat melihat contoh kedua fungsi tersebut pada kode di bawah ini
Perlu diketahui bahwa _7 tidak aman untuk threadMenggunakan _8 Mirip dengan 7, adalah 8. Fungsi ini menetapkan variabel lingkungan khusus proses Apache. Secara alami, fungsi ini dan pelengkapnya hanya tersedia saat menggunakan Apache. Anda dapat melihat contoh penggunaannya di bawah ini
Mengatur variabel lingkungan dalam konfigurasi NGINXJika Anda menggunakan NGINX sebagai server web, Anda dapat menggunakannya untuk menyetel variabel lingkungan. Arahan mengambil nama dan nilai peka huruf besar kecil, yang harus dikutip jika mengandung spasi
Variabel ini tersedia melalui _3, dan di 8 dan 3 Superglobal arrayMengatur variabel lingkungan dalam konfigurasi ApacheJika Anda menggunakan Apache sebagai server web, Anda dapat menggunakan direktif 5 untuk mengatur variabel lingkungan. Direktif dapat digunakan dalam konfigurasi server utama Apache, konfigurasi host virtual, konfigurasi direktori, atau file. file htaccessArahan mengambil nama dan nilai peka huruf besar kecil, yang harus dikutip jika mengandung spasi. Jika tidak ada nilai yang diberikan, variabel akan diinisialisasi ke string kosong
Tidak seperti menggunakan 1 di NGINX, variabel lingkungan yang disetel menggunakan 5 di Apache (atau salah satu fungsi terkait) hanya tersedia di 3 SuperglobalGunakan. file envMeskipun masing-masing cara di atas memiliki kelebihannya masing-masing, ada beberapa kelemahan yang perlu diingat
Pendekatan alternatif, salah satu yang mendapatkan daya tarik yang signifikan dalam PHP selama beberapa tahun terakhir, menggunakan file dotenv, dinamai sesuai nama file de facto. . kira-kira. Ini adalah file teks biasa yang menentukan variabel lingkungan yang diperlukan agar aplikasi berfungsi sebagai daftar pasangan kunci/nilai Anda dapat melihat contohnya di bawah ini 0Dengan asumsi bahwa contoh di atas adalah. env untuk proyek kami, kami dapat menggunakan paket seperti vlucas/phpdotenv, yang berbunyi. env, secara default dan menambahkan variabel yang didefinisikan di dalamnya ke 8 dan 3 SuperglobalsUntuk melakukan itu, pertama-tama kita menginstal paket sebagai dependensi aplikasi dengan menjalankan perintah di bawah ini _1Kemudian, kami akan menggunakan paket tersebut untuk memuat variabel lingkungan, seperti pada contoh di bawah ini _2
Catatan tentang. keamanan file envSangat penting untuk menyadari hal itu. file env tidak boleh disimpan di bawah kontrol versi Jika itu terjadi, semua manfaat keamanan menggunakan file dotenv akan hilang karena data sensitif apa pun yang terkandung di dalamnya akan tersedia bagi siapa saja yang dapat mengakses repositori. Itulah mengapa biasanya mengecualikannya dari kontrol versi, seperti dengan menambahkan. env (dan variasi nama file) ke proyek. gitignore saat menggunakan Git Begitulah cara bekerja dengan variabel lingkungan di PHPSaya harap artikel ini membantu Anda memahami cara menggunakan variabel lingkungan dalam proyek PHP Anda. Apakah Anda memiliki cara lain untuk bekerja dengan variabel lingkungan? Matthew Setter adalah Editor PHP di tim Twilio Voices dan pengembang poliglot. Dia juga penulis Mezzio Essentials dan Docker Essentials. Saat dia tidak menulis kode PHP, dia mengedit artikel PHP yang bagus di Twilio. Anda dapat menemukannya di msetter@twilio. com; Nilai posting ini 1 2 3 4 5 Penulis
Peninjau
Pos terkaitCara Mengirim Email di PHP pada tahun 2023 23 Januari 2023 Pada artikel ini, Anda akan mempelajari tiga cara berbeda untuk mengirim email dengan PHP; Laravel Breeze vs Laravel Jetstream 20 Januari 2023 Pada artikel ini, Anda mendapatkan pengantar komprehensif untuk Laravel Breeze dan Jetstream, termasuk menginstalnya, diskusi tentang perbedaan dan persamaannya, dan kapan menggunakannya Bantu Mereka Membantu Orang Lain 06 Desember 2022 Dalam tutorial ini, Anda akan mempelajari cara membuat aplikasi untuk membantu siapa saja dengan cepat menyumbang ke badan amal dan nirlaba menggunakan Slim Framework, Vue. js, dan Tailwind CSS Pelajari Bahasa Maasai dengan Cara yang Menyenangkan 20 Oktober 2022 Dalam tutorial ini, Anda akan membuat aplikasi yang membantu Anda mempelajari bahasa Maasai dengan cara yang mudah dan menyenangkan menggunakan WhatsApp Pub/Sub di Laravel - Pemahaman Mendalam 20 Oktober 2022 Dalam tutorial ini, Anda akan belajar tentang Pub/Sub, pola desain perangkat lunak berbasis pesan dan cara mengimplementasikannya di Laravel |