Parser Konfigurasi INI
File INI adalah format konfigurasi sederhana dengan seksi dan pasangan kunci-nilai, secara historis digunakan oleh Windows dan masih umum di banyak aplikasi (php.ini, my.cnf, setup.cfg). Alat ini mengurai sintaks INI, menampilkan seksi dan properti, dan dapat mengonversi ke JSON.
Spesifikasi
Kasus Penggunaan Umum
- Memeriksa konfigurasi php.ini atau MySQL my.cnf
- Mengurai file setup.cfg atau tox.ini Python
- Meninjau file konfigurasi Git (.gitconfig)
- Debug pengaturan aplikasi Windows
- Mengonversi konfigurasi INI lama ke JSON atau YAML
Fitur
- Mengurai header [section] dan pasangan key=value
- Menangani komentar (awalan ; dan #)
- Mendukung nilai yang dikutip dengan escape sequence
- Menampilkan properti global (sebelum seksi manapun)
- Mengonversi ke JSON untuk penggunaan programatik
- Mode tampilan yang dipercantik
- Tampilan komentar per seksi
- Peringatan penguraian untuk entri yang tidak valid
Contoh
Konfigurasi Database
Coba →File konfigurasi database tipikal.
[database]
host=localhost
port=3306
name=myapp_db
user=admin
[cache]
enabled=true
ttl=3600
driver=redisKonfigurasi PHP
Coba →Potongan dari php.ini.
; PHP Configuration
[PHP]
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 64M
[Date]
date.timezone = "America/New_York"Tips
- Nama seksi tidak peka huruf besar/kecil di sebagian besar implementasi.
- Gunakan kutipan di sekitar nilai yang mengandung karakter khusus.
- Komentar secara tradisional menggunakan ; tetapi beberapa parser juga menerima #.
- Kunci duplikat dalam seksi yang sama mungkin menimpa atau membuat array tergantung pada parser.
Pemahaman Parser Konfigurasi INI
File INI adalah format konfigurasi sederhana yang menggunakan seksi (dalam tanda kurung siku) dan pasangan kunci-nilai. Meskipun tidak memiliki spesifikasi formal, format ini telah digunakan secara luas sejak masa awal MS-DOS dan Windows. PHP menggunakan php.ini, Git menggunakan .gitconfig (gaya INI), aplikasi Windows menggunakan file .ini, dan banyak sistem lama bergantung pada format ini.
Struktur dasarnya mengelompokkan pasangan key=value di bawah header [section]. Nilai biasanya berupa string, meskipun beberapa parser menginterpretasikan angka dan boolean. Komentar menggunakan titik koma (;) atau simbol hash (#). Nilai multi-baris, seksi bersarang, dan escape sequence bervariasi antar implementasi karena tidak ada standar otoritatif.
File INI mengisi celah antara format kunci-nilai datar (seperti file .env) dan format terstruktur (seperti TOML dan YAML). Mereka menyediakan organisasi tingkat seksi tanpa kompleksitas struktur data bersarang. Untuk konfigurasi aplikasi sederhana dengan pengelompokan logis, INI tetap menjadi pilihan praktis.
Kurangnya standardisasi adalah kelemahan utama INI. Parser yang berbeda tidak setuju tentang karakter komentar, apakah kunci peka huruf besar/kecil, cara menangani kunci dan seksi duplikat, dan apakah nilai dapat mencakup beberapa baris. Saat memulai proyek baru, TOML umumnya pilihan yang lebih baik karena menyediakan organisasi berbasis seksi yang sama dengan spesifikasi formal dan tipe data yang lebih kaya.
TOML dirancang sebagai pengganti modern untuk INI dengan spesifikasi formal. Ia menambahkan tipe data native (integer, float, boolean, tanggal, array), tabel bersarang, array tabel, dan string multi-baris — fitur yang sama sekali tidak dimiliki INI. Untuk proyek baru, TOML adalah pilihan yang lebih baik; INI terutama relevan untuk kompatibilitas mundur dengan file konfigurasi yang sudah ada.
Sensitivitas huruf besar/kecil kunci bervariasi menurut implementasi. Fungsi INI Windows tidak peka huruf besar/kecil, configparser Python tidak peka huruf besar/kecil untuk kunci secara default, parse_ini_file PHP peka huruf besar/kecil untuk kunci tetapi tidak untuk seksi, dan konfigurasi Git tidak peka huruf besar/kecil untuk nama seksi dan kunci. Selalu periksa dokumentasi untuk parser spesifik Anda. Penanganan karakter khusus dalam nilai sama tidak konsistennya — beberapa parser mendukung pengutipan nilai dengan tanda kutip ganda, beberapa mendukung escape sequence, dan beberapa memperlakukan semua setelah tanda sama dengan sebagai nilai literal. Ketika karakter khusus dibutuhkan, verifikasi perilaku dengan parser spesifik Anda atau pertimbangkan migrasi ke TOML.