Come molti altri strumenti di sviluppo PHP può essere configurato attraverso un file di configurazione che definisce e guida il comportamento delle zend engine e delle sue estensioni. Le proprietà di configurazione possono essere assegnate e modificate in vari modi, che analizziamo brevemente; va anticipato che alcune proprietà possono essere modificate solamente in alcuni contesti, solitamente per motivi di sicurezza.
La prima soluzione è apportare manualmente le modifiche al file php.ini presente nella directory di configurazione di PHP. Ogni volta che si apportano modifiche a questo file è necessario riavviare l'interprete (solitamente riavviando il webserver di supporto) e spesso il file, per motivi di sicurezza, risulta protetto da modifiche da parte degli utenti che usufruiscono di servizi hosting.
Il formato del file di configurazione di PHP è molto semplice e segue gli standard utilizzati da altri strumenti opensource:
- Vengono saltate tutte le righe vuote o precedute da un punto e virgola;
- Le proprietà sono definite da una serie di caratteri senza spazi;
- Ogni riga definisce un'operazione di assegnamento (utilizzando l'operatore uguale);
- I valori possono essere numeri, costanti interne, stringhe o altre espressioni valide interpretate dal motore;
php_flag
possiamo impostare ad On o Off i valori di una variabile di
configurazione di PHP; in caso i valori di una variabile siano valori
differenti dal booleano è possibile utilizzare php_value:
php_value error_reporting E_ALL
php_flag register_globals Off
php_flag register_globals Off
L'ultima opzione possibile è quella di modificare i valori direttamente all'interno del proprio codice PHP sfruttando la funzione
ini_set
(con ini_get
possiamo recuperare i valori assegnati o specificati con i parametri di configurazione):
ini_set('include_path', ini_get('include_path').':../includes:');
?>
?>
Vediamo ora alcuni parametri di configurazione che controllano il comportamento del motore di PHP:
allow_call_time_pass_reference(boolean): Abilita o meno la possibilità di forzare gli argomenti delle funzioni ad essere passati per riferimento. Questo parametro è deprecato e potrebbe non essere più supportato nelle versioni future di PHP/Zend. Si incoraggia il metodo di specificare quale parametro debba essere passato per riferimento al momento della dichiarazione della funzione. Si suggerisce di impostare l'opzione a off per essere certi che lo script funzioni correttamente con questa impostazione, in modo da predisporsi ad eventuali modifiche future del linguaggio (si riceverà un warning ogni volta che si utilizza questa opzione e i valori saranno passati per valore anzichè per riferimento). Passare i valori per riferimento al momento della chiamata della funzione viene sconsigliato per motivi di chiarezza del codice. La funzione può modificare il parametro in modo non previsto se non indica questo come passato per riferimento. Per evitare effetti secondari inattesi, è meglio indicare soltanto al momento della dichiarazione della funzione quali parametri saranno passati per riferimento.
short_open_tag(boolean): Indica se abilitare o meno la forma abbreviata dei tag di apertura del PHP (
). Se si desidera utilizzare il PHP in combinazione con l'XML, occorre disabilitare questa opzione per potere abilitare la riga
. In alternativa occorre stampare il testo con il PHP, ad esempio: . Inoltre, se disabilitato, occorre utilizzare la versione lunga dei tag di apertura del PHP (
). Questo parametro influisce anche su , la quale è identica a . L'uso di questa abbreviazione richiede l'abilitazione di short_open_tag
.
È ormai buona norma disabilitare la forma abbreviata ed utilizzare
quella estesa, quindi è consigliabile impostare a Off questo valore.
- memory_limit(integer): Questo parametro imposta la
dimensione massima in byte di memoria occupabile dallo script. Questo
aiuta a impedire che script scritti male utilizzino tutta la memoria del
server. Per potere utilizzare questo parametro occorre abilitarlo al
momento della compilazione. Pertanto occorrerà includere nella
configurazione la linea: --enable-memory-limit. Si noti che occorre
impostare il parametro a -1 se non si desidera impostare limiti di
memoria.
post_max_size(integer): Imposta la dimensione
massima dei dati post. Questa impostazione influenza anche gli upload
dei file. Per permettere upload di file di grandi dimensioni, il valore
impostato deve essere maggiore di upload_max_filesize. Anche il limite
di memoria, memory_limit, se abilitato, può limitare gli upload di file.
In termini generali memory_limit dovrebbe essere maggiore di
post_max_size. Il valore assegnabile è soggetto alle regole sintattiche
del file PHP.ini, quindi è possibile utilizzare delle abbreviazioni per
specificare megabyte o gigabyte di dati: 20M o 1G. Se la dimensione dei
dati post è maggiore di post_max_size, le variabili superglobale $_POST e
$_FILES sono vuote. Questo può essere rilevato in diversi modi, ad
esempio passando una variabile $_GET allo script che processa i dati,
tipo
0 commenti:
Posta un commento
Proponi un'idea, segnalaci un problema.
Entra a far parte di CS3, pubblica i tuoi articoli.
Scrivi un commento!