venerdì, agosto 30, 2013

PHP - File di configurazione


Questo post fa parte di una serie preparata qualche anno fa per delle lezioni su PHP.

Dove mettere i file di configurazione

I parametri necessari per la configurazione/personalizzazione dell'applicazione andrebbero posti in uno o più file accessibili al server web, ma - se possibile - non al pubblico.
Per esempio, i file dell'applicazione potrebbero essere in /var/www/myapp, mentre i file di configurazione in /etc/myapp.
Ovvii motivi di sicurezza dicono che i file - soprattutto se non in formato php - non vanno messi in una directory accessibile.
Vale anche la pena di notare che ci potrebbero essere problemi in ambienti di shared hosting (sulla stessa macchina, il server web può leggere i file di configurazione di un altro dominio).

Tipi di file di configurazione

I tipi più comuni di file di configurazione sono:
  • puro PHP;
  • XML;
  • INI;
  • YAML.

File in puro PHP

Un file come questo config.inc.php

<?php
$CONFIG['directory_name'] = 'stuff';
$CONFIG['default_type'] = 'png';

potrebbe essere incluso in questo modo:

require_once('config.inc.php');
print_r($CONFIG);
echo "directory name: " . $CONFIG['directory_name'] . "\n";

File in formato XML

Il file è come questo:

<?xml version='1.0'?>
<config>
<directory_name>stuff</directory_name>
<default_type>png</default_type>
</config>

Per leggerlo scriveremo:

$conf=simplexml_load_file('config.xml');
print_r($conf);
echo "directory name: " . $conf->directory_name . "\n";

File in formato INI

Il file è come questo:

;CONFIGURATION FOR MY APPLICATION
directory_name = stuff
default_type = png

e per leggerlo scriveremo: 

$conf=parse_ini_file('config.ini');
print_r($conf);
echo "directory name: " . $conf['directory_name'] . "\n";

File in formato YAML


I file in formato YAML non sono (ancora) supportati nativamente da PHP (bisogna installare un estensione PECL o librerie apposite).

Nessun commento:

Posta un commento