Debug de aplicações CakePHP no Komodo IDE
O Komodo IDE permite elaborar um ambiente de desenvolvimento bem completo, mas não seria completo se não tivesse um debugger PHP acoplado. Neste post, vou comentar como debugar uma aplicação CakePHP através do Komodo IDE.
Primeiro, vocês terão que configurar a IDE para poder rodar o debug. Isto não é muito difícil, na janela Edit -> Preferences -> Languages -> PHP exite um botão de configuração passo-a-passo, não terão muita dificuldade.
Agora que está configurado, vamos explicar um pouco a estrutura do CakePHP. Como vocês sabem, mesmo que sua aplicação não utilize mod_rewrite, o framework utiliza um sistema de roteamento. O que é isto? Router é uma funcionalidade do CakePHP que reescrever as URL’s de forma a deixa-las mais amigáveis. Quando você entra num URL http://endereco.com/posts/ver/1, não quer dizer que você acessou o arquivo “1” da subpasta “ver” da pasta “posts“. Neste exemplo, está sendo instanciado o PostsController, executando o método “ver” e passando por parâmetro o inteiro “1“.
Mas o que isto têm haver com debugar? Bem, todo o debug tem que ter um ponto de partida, em aplicações normais você procura debugar somente aquele arquivo que você sente necessidade. Porém, como a arquitetura do CakePHP foi desenvolvida de forma a sempre passar através do sistema de rotas, vamos ter que nos preocupar com alguns detalhes antes de sair escovando os bits. Portanto, precisamos nos preocupar com o primeiro mandamento do debug de aplicações CakePHP:
Inicie sempre o debug no arquivo webroot/index.php de sua aplicação.
Isto garantirá que você está passando pelo sistema de roteamento. Mas passar somente pelo Router não fará você alcançar o código que você deseja analisar, você terá que identificar a rota que o roteador deverá passar. Isto dá base para nosso segundo mandamento:
Configure a variável $_GET['url'] com a rota necessária
Aqui que está o pulo do gato. O que vamos fazer é simular o acesso de algum usuário a uma determinada rota. Utilizando o exemplo do post, para analisar o código do método “ver”, seria necessário setar a variável $_GET['url'] com “/posts/ver/1″.
Vamos começar um debug (eu utilizo o F5, mas existem várias formas de começar a debugar). O Komodo irá abrir uma janela de configuração. O que é mais importante é que vocês utilizem o CGI Interpreter com o checkbox de Simulate CGI Environment acionado. Isto é necessário para podermos simular um requisição em um servidor HTTP normal. Você perceberão que acionando o Environment abrirá duas novas abas de configuração. Bingo! É na aba CGI Input que vamos adicionar uma variável GET de nome ‘url’.
Agora é só dar OK e pronto, já estamos debugando o CakePHP. Para adicionar os breakpoints há várias maneiras, eu clico na barra cinza no lado do código. Mas vocês podem utilizar o Debug -> Add/Edit Breakpoints
Pronto pessoal, agora é só debugarem suas aplicações. Recomendo a todos debugarem pelo menos uma vez com o breakpoint no início do index.php. Assim vocês poderão ver passo a passo como o CakePHP renderiza uma página.
Tags: cakephp, debug, komodo






