Diagnóstico
O Inphinit conta com uma ferramenta que auxilia no diagnóstico do ambiente, identificando possíveis problemas ou sugerindo configurações ideais, como aquelas voltadas para o aprimoramento da segurança ou do desempenho.
Usando
É possível usar a classe para detectar problemas no ambiente em que o aplicativo está sendo executado, da seguinte forma:
<?php
use Inphinit\Diagnostics\Checkup;
$app->action('GET', '/checkup', function () {
$check = new Checkup();
$errors = $check->getErrors();
echo implode("<br>\n", $errors);
$warnings = $check->getWarnings();
echo implode("<br>\n", $warnings);
});
Ao criar um novo projeto, a rota /checkup já estará configurada em main.php e funcionando para determinar as condições do ambiente em que a aplicação será executada. É possível mover a rota para um contexto com autenticação, limitá-la ao escopo de um host privado. Arquivos relacionados:
-
system/
-
Controllers/
- CheckupController.php
-
views/
- checkup.php
-
Controllers/
Esses arquivos podem ser removidos ou completamente recriados; a abordagem apresentada é apenas um exemplo de uso básico.
Possíveis erros
| Mensagem | Notas |
|---|---|
Valor inesperado em max_execution_time=<valor> (interpretado como <valor>) |
Nota: Apenas em Web |
max_execution_time ilimitado é inseguro no contexto da Web |
Nota: Apenas em Web |
Valor inválido na entrada memory_limit=<valor> |
|
memory_limit ilimitado é inseguro no contexto da Web |
Nota: Apenas em Web |
Valor inválido na entrada post_max_size=<valor> |
Nota: Apenas em Web |
Valor inválido na entrada upload_max_filesize=<valor> |
Nota: Apenas em Web |
post_max_size=<valor> é menor que upload_max_filesize=<valor> |
Nota: Apenas em Web |
Valor inesperado em max_file_uploads=<valor> (interpretado como <valor>) |
Nota: Apenas em Web |
A função random_bytes() não está disponível; habilite a extensão Mcrypt para usá-la como alternativa |
Nota: Apenas em PHP 5 |
random_bytes() indisponível; verifique disable_functions |
Nota: Apenas em PHP 7+ |
Diretório inexistente: ./storage |
|
O diretório ./storage requer permissões de escrita |
|
Desative a função obsoleta magic_quotes_gpc |
Nota: Apenas em PHP 5 e 7 |
Desative a opção obsoleta always_populate_raw_post_data |
Nota: Apenas em PHP 5 |
Em ambiente de produção, a opção display_errors deve ser desativada |
Nota: Apenas em Ambiente de Produção |
Possíveis avisos
| Mensagem | Notas |
|---|---|
memory_limit=<valor> pode não ser suficiente |
|
post_max_size=<valor> pode não ser suficiente |
Nota: Apenas em Web |
upload_max_filesize=<valor> pode não ser suficiente |
Nota: Apenas em Web |
max_file_uploads=<valor> pode não ser suficiente |
Nota: Apenas em Web |
file_uploads=Off está desativado. Se isso não for intencional, ative-o |
Nota: Apenas em Web |
random_bytes() indisponível. Usando a extensão Mcrypt como alternativa |
Nota: Apenas em PHP 5 |
(Opcional) A extensão Intl é necessária para Inphinit\Utility\String e Inphinit\Utility\Url |
|
Desative a função obsoleta auto_detect_line_endings |
|
Durante o modo de desenvolvimento, é recomendável desativar opcache.enable |
Nota: Apenas em Ambiente de Desenvolvimento |
Durante o modo de desenvolvimento, é recomendável desativar wincache.ocenabled |
Nota: Apenas em Ambiente de Desenvolvimento |
Durante o modo de desenvolvimento, é recomendável desativar o arquivo xcache.cacher |
Nota: Apenas em Ambiente de Desenvolvimento |
Defina expose_php=Off para garantir que a versão do PHP não seja exposta nos cabeçalhos HTTP |
Nota: Apenas em Web |
A função ini_get está desativada, portanto, nenhuma verificação adicional pode ser realizada |
|
A função php_ini_loaded_file() está desativada, portanto algumas verificações podem ser ignoradas |
|
O arquivo php.ini não está configurado; ignore esta mensagem se estiver usando opções (flags) |