Perché le applicazioni Web pubbliche non utilizzano i file ini per la configurazione

9

Quasi tutti i CMS pubblici disponibili utilizzano un file di configurazione .php per le impostazioni del database e così via. Ad esempio WordPress crea automaticamente un file di configurazione .php quando lo si installa.

Perché non usano solo un file .ini? PHP ha già parse_ini_file () e sono sicuro che altre lingue hanno funzioni simili.

    
posta thelolcat 09.02.2012 - 02:37
fonte

4 risposte

9

Con PHP in particolare; la differenza tra un file .ini e un file .conf.php è trascurabile.

L'utilizzo diretto di PHP per la configurazione ha il chiaro vantaggio di dover solo relazionarsi a una sintassi portatile ben definita per la configurazione e il fatto che il file di configurazione sia correttamente codificato è occasionalmente utile.

Rispetto a questo; un file ini ha poco o nulla da offrire; e include , require e require_once sono tutti ben noti e (soprattutto) ben compresi.

    
risposta data 09.02.2012 - 02:50
fonte
4

In generale preferisco .ini o file di configurazione XML. Nei sistemi più grandi, spesso qualcuno diverso dallo sviluppatore dovrà modificare un valore di configurazione, possibilmente un DBA o un amministratore di sistema. La maggior parte degli amministratori di sistema e amministratori di sistema che conosco non avrebbero alcun problema a navigare attraverso un semplice script PHP, ma preferirei che non lo facessero. Un piccolo errore può danneggiare l'intera applicazione in diversi modi.

Ma nei sistemi più piccoli, è estremamente comodo usare gli script PHP per la configurazione. Stavo giocando con AWS SDK oggi, che utilizza anche uno script PHP per la configurazione:

CFCredentials::set(array(
    'development' => array(
        'key' => 'xxx',
        'secret' => 'xxxx',
        'default_cache_config' => sys_get_temp_dir(),
        'certificate_authority' => true
    ),
    '@default' => 'development'
));    

Invece di hardcoding a default_cache_config , sto passando il temp di sistema, e ciò funzionerebbe in ogni sistema che distribuisco lo script. Questo script è una piccola dimostrazione del concetto che verrà distribuito a circa 10 sviluppatori, e voglio che lo eseguano così com'è, senza avere molto a cui pensare. Se il prototipo si evolve, lo collegherò con la mia classe di configurazione XML (e ovviamente non si baserà sulla cache del filesystem).

    
risposta data 09.02.2012 - 02:55
fonte
3

La risposta è semplice: un conf.php ha praticamente zero lavori richiesti per funzionare. È solo un altro file sorgente.

    
risposta data 09.02.2012 - 05:50
fonte
0

Anche la velocità senza memorizzazione nella cache può essere la ragione. La configurazione di PHP può essere salvata in cache opcode se necessario. Mentre il file INI deve essere analizzato dal testo ogni volta che viene letto ed è necessario creare la cache da soli. Per i file di piccole dimensioni va bene, ma con centinaia di righe analizzate su ogni richiesta può arrivare a decine di millisecondi, il che è abbastanza per il web ottimizzato a 200 ms.

    
risposta data 09.06.2013 - 14:12
fonte

Leggi altre domande sui tag