O que posso definir no ini_set() do php?

Bom, estes dias eu pensei numa aplicação mais robusta que precisasse de alterações em muitas configurações do php, no entanto, tive que considerar o fato de muitos desenvolvedores não terem acesso ao arquivo php.ini, e me lembrei de uma situação que vivi alguns meses atrás: “O que posso definir no ini_set()“.

Para mais informações sobre ini_set, acesse a documentação da mesma em http://www.php.net/manual/pt_BR/function.ini-set.php.

Então, vamos explicar algumas coisas.

Diretivas do PHP

Diretivas são informações, tipo constantes, que o compilador usa para saber o que deve fazer com o código em questão na hora de realizar algum processamento. Geralmente, estas diretivas ficam em um arquivo de configuração (“.ini”), e que o administrador do sistema pode modificar para se adaptar às suas necessidades de processamento.

No php.ini o administrador pode modificar muita coisa da linguagem, e o desenvolvedor, pode usar da função ini_set() para alterar algumas configurações básicas dentro de um arquivo bootstrap ( bootstrap é um arquivo com algumas configurações da aplicação que pertencem propriamente ao PHP ou à aplicação em si ).

A chamada é simples:



init_set('diretiva', 'valor');

O uso mais comum é de display_errors.

Entrentanto, se quiséssemos modicar outras diretivas, quais poderíamos? Bom, ai está a questão, e precisamos entender como o PHP define as prioridades delas.

Existem basicamente 4 tipos de diretivas no PHP, são elas, que a referência define como “modos”:

PHP_INI_USER – A entrada pode ser definida nos scripts do usuário (como com ini_set()) ou no registro do Windows

PHP_INI_PERDIR – A entrada pode ser definida no php.ini, .htaccess ou httpd.conf

PHP_INI_SYSTEM – A entrada pode ser definida no php.ini ou httpd.conf

PHP_INI_ALL – Entrada pode ser definida em qualquer lugar

Então já temos uma luz ai. PHP_INI_USER e PHP_INI_ALL possuem permissão para serem definidas num arquivo bootstrap ou em qualquer arquivo php.

Onde achar estas diretivas?

O PHP possui um lista de diretivas, bem generosa, que pode ser acessada neste link do manual:

http://www.php.net/manual/pt_BR/ini.list.php

Olhar para esta lista não vai ajudar em nada, se não entender para o que serve, e onde aplicá-las, mas quanso se sabe o que quer, faz sentido!