Untuk satu, kecil, situs sederhana, saya baru saja meletakkan konfigurasi dalam file PHP. Tetap sederhana. PHP mungkin tidak mem-parsing apa pun lebih cepat daripada mem-parsing PHP. Jika Anda menggunakan APC, bytecode yang dikompilasi bahkan di-cache -- meskipun bytecode tersebut kemudian dieksekusi ulang untuk setiap permintaan. Untuk file konfigurasi kecil, eksekusi bytecode ini akan memakan waktu sangat sedikit; untuk file yang sangat besar, mungkin perlu waktu lebih lama.
Untuk situs dengan lalu lintas tinggi dengan konfigurasi besar, menyimpan data konfigurasi di APC (misalnya sebagai larik tunggal) adalah ide yang bagus -- setidaknya, Anda menghemat biaya untuk mengeksekusi pernyataan dalam file config.php Anda. Khususnya, facebook melakukan ini. Saat Anda melayani banyak permintaan per detik, menekan disk untuk membaca file konfigurasi (menggunakan parse_ini_file, parser XML, dll.) pada setiap permintaan tidak mungkin dilakukan.
Untuk proyek saya saat ini, kami meng-host banyak situs, masing-masing dengan konfigurasinya sendiri. Setiap situs memiliki database dan file konfigurasi; namun, memastikan Anda selalu menggunakan file konfigurasi yang tepat dengan database yang tepat dapat membuat Anda pusing. Selain itu, perubahan akan memerlukan perubahan di dua tempat -- db dan konfigurasi. Melupakan satu atau yang lain selalu menyebabkan masalah, dan itu terlalu sering terjadi.
Kami memindahkan konfigurasi ke dalam database, sehingga Anda tidak mungkin dapat memisahkan db dari konfigurasi yang benar, dan setiap perubahan kode hanya memerlukan pembaruan database. Data dari tabel konfigurasi juga di-cache secara agresif di APC, jadi kami jarang menanyakannya.
Jadi, untuk rekap:
- Situs kecil :cukup gunakan file config.php
- Situs yang sangat besar :cache di APC
- Beberapa situs :simpan konfigurasi di database untuk mengurangi biaya administrasi; cache di APC untuk mengurangi hit basis data