1. O que é o DebugBundle?
O DebugBundle é uma ferramenta fornecida pelo Symfony para ajudar os desenvolvedores a depurar e corrigir problemas em suas aplicações. Ele fornece uma série de recursos úteis, como a capacidade de visualizar informações de depuração no navegador, depurar o conteúdo da solicitação e da resposta do aplicativo e gerar perfis de desempenho.
2. Como instalar o DebugBundle?
Para instalar o DebugBundle, basta adicioná-lo ao seu arquivo composer.json e executar o comando “composer update” para instalar as dependências. Depois disso, é necessário registrar o bundle no arquivo AppKernel.php da sua aplicação.
// app/AppKernel.php
public function registerBundles()
{
$bundles = [
// ...
new SymfonyBundleDebugBundleDebugBundle(),
// ...
];
// ...
}
3. Quais são os recursos do DebugBundle?
O DebugBundle fornece uma série de recursos úteis para debugging, incluindo:
- Barra de debug no navegador
- Profiler no navegador
- Dumpers de variáveis
- Mensagens de log
- Recurso de interceptação de exceções
- Recurso de interceptação de erros de PHP
- Modos de cache e de Debugger desativados para desenvolvimento
4. Como usar a barra de debug no navegador?
Uma das características mais úteis do DebugBundle é a barra de debug no navegador. Ela exibe informações úteis sobre a solicitação atual do usuário, como rotas, consultar parâmetros e informações de perfil de desempenho. Para ativá-la, basta adicionar o seguinte código ao seu arquivo de configuração do Symfony:
# app/config/config_dev.yml
web_profiler:
toolbar: true
5. Como usar o Profiler no navegador?
O Profiler é um recurso do DebugBundle que permite monitorar e analisar o desempenho da sua aplicação. Ele exibe informações detalhadas sobre cada solicitação feita ao seu aplicativo, como a rota usada, os controladores envolvidos, as consultas executadas no banco de dados e muito mais. Para usá-lo, basta adicionar o seguinte código ao seu arquivo de configuração:
# app/config/config_dev.yml
web_profiler:
toolbar: true
intercept_redirects: false
6. Como usar Dumpers de variáveis?
O DebugBundle fornece uma série de “dumpers” de variáveis que podem ajudar a depurar problemas em sua aplicação. Por exemplo, você pode usar o método “dump” para imprimir os valores de uma variável diretamente no navegador. Aqui está um exemplo:
// src/AppBundle/Controller/DefaultController.php
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentVarDumperVarDumper;
public function indexAction(Request $request)
{
$data = array('hello' => 'world');
VarDumper::dump($data);
// ...
}
7. Como usar as mensagens de log?
O DebugBundle fornece uma série de “loggers” que permitem registrar mensagens de depuração diretamente nos arquivos de log da sua aplicação. Por exemplo, você pode usar o seguinte código para registrar uma mensagem de log:
// src/AppBundle/Controller/DefaultController.php
use PsrLogLoggerInterface;
public function indexAction(Request $request, LoggerInterface $logger)
{
$logger->info('Hello world!');
// ...
}
8. Como usar o recurso de interceptação de exceções?
O DebugBundle pode interceptar exceções em sua aplicação e fornecer informações úteis sobre elas, como a pilha de chamadas e o código-fonte relacionado. Para ativá-lo, basta adicionar o seguinte código ao seu arquivo de configuração:
# app/config/config_dev.yml
debug:
throw_exception_listener: true
9. Como usar o recurso de interceptação de erros de PHP?
O DebugBundle também pode interceptar erros do PHP em sua aplicação e exibir informações úteis sobre eles, como a linha de código exata onde o erro ocorreu. Para ativá-lo, basta adicionar o seguinte código ao seu arquivo de configuração:
# app/config/config_dev.yml
debug:
error_handler: true
10. Como desativar o cache e o modo de depuração em produção?
Para garantir que sua aplicação execute com mais rapidez e segurança em um ambiente de produção, é importante desativar o cache e o modo de depuração fornecidos pelo DebugBundle. Para fazer isso, basta adicionar o seguinte código ao seu arquivo de configuração:
# app/config/config_prod.yml
imports:
- { resource: config.yml }
framework:
debug: false
profiler: { only_exceptions: false }
web_profiler:
toolbar: false
intercept_redirects: false