sintaxe php

Instalando uma debugbar no CodeIgniter

Fazer debug durante o desenvolvimento de aplicações é muito comum e para facilitar esse processo esse tutorial vai te ensinar a instalar, passo a passo, uma debugbar no CodeIgniter.

Preparando o ambiente

Para criar a aplicação com a versão mais recente do CodeIgniter, vamos utilizar o Composer, que fará todo o processo, desde a criação do diretório até o download dos arquivos do CodeIgniter.

Acesse o terminal para que possa executar a linha de comando abaixo, que irá criar o diretório debugbar-codeigniter.

Lembre-se que voce deve criar o diretório da aplicação dentro do diretório web do seu servidor, ou então configurar o virtual host para que aponte para o diretório onde estão os arquivos da aplicação.


composer create-project bcit-ci/codeigniter debugbar-codeigniter --prefer-dist

Instalando a debugbar

Para instalar a debugbar atualize o arquivo composer.json conforme o código apresentado a seguir e execute o comando composer update para que as dependências sejam instaladas.

Configurando a debugbar

Autoload

Como a aplicação está utilizando o Composer para gerenciar as dependências, é preciso informar que o autoload do Composer deve ser executado.

Para que isso ocorra acesso o arquivo application/config/config.php e modifique a linha 139 para que fique conforme apresentado abaixo.

Essa alteração farácom que o arquivo de autoload do Composer, que se encontra dentro do diretório vendor localizado na raiz da aplicação, seja carregado, liberando assim o uso das dependências instaladas via Composer.


$config['composer_autoload'] = './vendor/autoload.php';

Packages

Para carregar os arquivos da debugbar é preciso carregar o pacote dela no autoload da aplicação.

Abra o arquivo application/config/autoload.php e defina na linha 42 o carregamento da do package da debugbar.

 

$autoload['packages'] = array(APPPATH.'third_party/codeigniter-debugbar');

Libraries

A debugbar faz uso de uma library chamada console que é instalada junto com ela via Composer, e precisa ser carregada no autoload da aplicação.

Abra o arquivo application/config/autoload.php e defina na linha 61 o carregamento da library console para a aplicação.

 

$autoload['libraries'] = array('console'); 

Profile

O profile é o arquivo onde estarão as configurações da debugbar a nível de exibição de informação.

Não é necessário criar esse arquivo, pois ele já existe no diretório application/third_party/codeigniter_debugbar/config. Copie o arquivo profiler.php desse diretório para o diretório application/config e pronto.

CSS/JS

Para a perfeita renderização da debugbar é preciso carregar alguns arquivos CSS e JS. Para isso, adicione o código abaixo no header da view welcome_message, localizada em application/views.


<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.1.0/highlight.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.1.0/styles/github.min.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">

Feito isso, a debugbar está pronta para ser utilizada.

Utilizando a debugbar

Para utilizar a debugbar, abra o arquivo application/controllers/Welcome.php e atualize o código do método index conforme exemplo a seguir:


public function index()
{
    $this->console->exception(new Exception('test exception'));
    $this->console->debug(array('teste','teste','teste'));
    $this->console->info('Info message');
    $this->console->warning('Warning message');
    $this->console->error('Error message');
    $this->output->enable_profiler(true);
    $this->load->view('welcome_message');
}

As 4 primeiras linhas do método index são utilizadas para imprimir na debugbar informações de: exception, debug, info, warning e error, como temos no javascript com o console.log por exemplo.

A linha $this->output->enable_profiler(true) é a responsável por ativar a debugbar. Se o seu parâmetro for setado como FALSE ou a linha for omitida, a debugbar não será exibida.

Veja um exemplo de como fica a exibição da debugbar para a execução do método acima.

Debugbar

A partir do arquivo application/config/profiler.php você pode definir quais informações serão exibidas na debugbar.

Caso não queira exibir as informações do CodeIgniter, então defina a chave ‘codeigniter_info’ como FALSE e a debugbar ficará com a seguinte exibição:

Debugbar

Dica esperta

A debugbar só tem utilidade no ambiente de desenvolvimento, então você pode criar um hook para verificar qual é o ambiente que está sendo utilizado e então executar o $this->output->enable_profiler(true).

Fazendo isso você não precisa chamá-lo em todos os métodos que carregam views, e também terá a garantia de que somente o ambiente de desenvolvimento vai fazer uso da debugbar.

Se você não conhece muito sobre os hooks do CodeIgniter, não se preocupe, tem um tutorial aqui no portal que vai te ajudar.

Hooks: Extendendo o framework

Até a próxima!