Depuração

O Inphinit inclui diversos recursos para depuração, com acesso rápido a editores de código e assistentes externos (IA ou mecanismos de busca).

Modo de desenvolvimento

No modo de desenvolvimento, em vez de uma instância de Inphinit\App na variável $app, você terá uma instância de Inphinit\Debug\App. Essa instância faz exatamente a mesma coisa que Inphinit\App, mas também valida todos os valores em todos os métodos da classe, lançando exceções se algum valor for inesperado. Se o modo de desenvolvimento estiver desativado, nenhum dos métodos realizará validações ou lançará erros, o que permitirá um desempenho muito melhor quando o modo de desenvolvimento estiver desativado. Por outro lado, se estiver ativado, permitirá que você desenvolva sem cometer tantos erros.

Erros de depuração

No modo de desenvolvimento, todos os erros, avisos e exceções podem ser exibidos diretamente no navegador, mostrando o conteúdo do script e da linha problemática (arquivos HTML e XML problemáticos carregados por uma Inphinit\Dom\Document instância também serão exibidos; mais detalhes sobre erros DOM).

Você precisa executar o método $debug->setErrorView($view) no arquivo system/dev.php e é possível personalizar a View . Por padrão, a View já está definida como 'debug.error' (a partir de system/views/debug/error.php):

// Inject CSS for debug if necessary $debug->setBeforeView('debug.style'); // Display errors $debug->setErrorView('debug.error');

Os erros serão exibidos de forma semelhante a esta:

Depurando rotas

No modo de desenvolvimento, todas as rotas criadas serão validadas. No método action($methods, $path, $callback), os métodos HTTP serão validados, permitindo apenas os métodos ANY, DELETE, GET, HEAD, OPTIONS, PATCH, POST e PUT.

Caso sejam passados métodos duplicados em um array, como $app->action(['GET', 'GET'], '/foo', ...), uma exceção também será lançada.

Outras validações:

  • Padrões duplicados
  • Padrões inválidos
  • Controladores inválidos
  • Visibilidade incorreta do método nos controladores
  • Callbacks não chamáveis
  • Namespaces de prefixo inválidos definidos usando setNamespace($prefix) o método
  • Caminhos de prefixo inválidos definidos usando setPath($prefix) o método

Integração de assistentes online

Você também pode especificar uma URL personalizada contendo o marcador de posição {error}, que será substituído pela system/Configs/debug.php chave de alteração da mensagem de erro real:

'assistant' => 'https://duckduckgo.com/?q={error}',

Ou você também pode usar um dos valores de atalho para assistentes populares ou mecanismos de busca:

Valor Descrição
'assistant' => 'chatgpt' No ambiente de desenvolvimento, as mensagens de erro gerarão links para o OpenAI ChatGPT.
'assistant' => 'claude' No ambiente de desenvolvimento, as mensagens de erro gerarão links para o Anthropic Claude.
'assistant' => 'duck.ai' No ambiente de desenvolvimento, as mensagens de erro gerarão links para o DuckDuckGo AI Chat.
'assistant' => 'duckduckgo' No ambiente de desenvolvimento, as mensagens de erro gerarão links para a pesquisa do DuckDuckGo.
'assistant' => 'google' No ambiente de desenvolvimento, as mensagens de erro gerarão links para a Busca do Google.
'assistant' => 'google.ai' No ambiente de desenvolvimento, as mensagens de erro gerarão links para o Google AI/Gemini.
'assistant' => 'perplexity' No ambiente de desenvolvimento, as mensagens de erro gerarão links para o Perplexity AI.
'assistant' => 'https://foo.bar?q={error}' Utilizando essa ferramenta, {error} você pode montar qualquer URL que desejar, personalizando assim o assistente ou mecanismo de busca que preferir.

Integrando o editor de texto

Alguns editores de código, como o Visual Studio Code, podem se integrar com navegadores da web por meio de links. Como resultado, quando você está no modo de desenvolvimento, erros, exceções e até mesmo avisos menores exibidos no navegador podem incluir links que levam você diretamente ao arquivo e à linha correspondentes no seu editor. Por padrão, novos projetos geram links para o VS Code. Esse comportamento pode ser alterado editando o system/configs/debug.php arquivo e atualizando a seguinte chave:

'editor' => 'vscode',

Texto Sublime

Para integrar com o SubliteText, altere a chave para:

'editor' => 'sublimetext',

Outros editores

Outros editores podem ter links com formatos diferentes, portanto em vez de um valor simples, é possível criar seu próprio link, usando {path} and {line} como referência. Exemplo:

'editor' => 'foo://bar/baz?path={path}&line={line}',

Exibe métodos, constantes e classes definidos.

No modo de desenvolvimento, é possível habilitar um recurso para exibir, para cada requisição, as classes, funções e constantes que foram carregadas por meio de carregamento automático ou execução padrão. Isso facilita a depuração e ajuda a identificar execuções desnecessárias. Adicione a seguinte linha ao seu system/dev.php arquivo:

$debug->setDefinedView('debug.defined');

Exibe o desempenho

No modo de desenvolvimento, é possível ativar um recurso para exibir, para cada solicitação, o consumo de memória e o tempo de processamento. Essas informações são úteis para encontrar maneiras de otimizar o projeto. Adicione a seguinte linha ao seu system/dev.php arquivo:

$debug->setPerformanceView('debug.performance');
Página inicial
Apoie com uma estrela no GitHub