Skip to content

Comunidade Portuguesa de PHP

Narrow screen resolution Wide screen resolution Increase font size Decrease font size Default font size default color black color cyan color green color red color
Home arrow Tutoriais arrow Avançados arrow Configurar o Eclipse para debug de sites PHP
Configurar o Eclipse para debug de sites PHP PDF Imprimir e-mail
Classificação: / 13
FracoBom 
Escrito por metator   
19-Fev-2008

Penso que a funcionalidade de debug de código PHP é uma coisa muito desejada pelos programadores e se possível que esta seja fornecida gratuitamente. Isto já pode ser obtido a partir do Eclipse com o plugin PDT - PHP Development Tool - que antigamente se chamava Eclipse PHP IDE. Faz também parte deste projecto a Zend que, para além de outras funcionalidades, fornece o debugger que permite, como o nome indica, fazer debug de sites PHP. Quando digo sites, é mesmo sites, ou por outras palavras, é possível numa sessão de debug percorrer várias páginas PHP e parar em qualquer uma delas para observar, por exemplo, variáveis de sessão ou cabeçalhos HTTP.

Chega de conversa e vamos ao que interessa. Este tutorial é baseado noutro tutorial em inglês que se encontra aqui. Há no entanto bastantes diferenças em relação a este principalmente no que diz respeito ao software usado.

 Software usado

  • Windows XP Professional

  • PHP 5.2.0

  • Apache HTTP Server 2.2.4

  • Eclipse 3.2.1 com plugin PDT

  • Zend Debugger 5.2.3


  • Instalação do Apache HTTP Server

    O instalador pode ser obtido aqui. Instalar o apache como um serviço. Ter em atenção que a instalação como um serviço necessita do porto 80 livre, por isso, é necessário parar o serviço do IIS caso este esteja em execução (ou qualquer outro serviço que use este porto. O valor do porto pode, no entanto, ser alterado após a instalação do servidor). No meu computador, o Apache ficou instalado em C:/Programas/Apache Software Foundation/Apache2.2/ (APACHE_HOME).

    Instalação do PHP

    Escolher a versão zipada do PHP que pode ser obtida aqui. Descomprimir para a pasta dos Programas. No meu computador ficou em C:/Programas/PHP/ (PHP_HOME). A configuração do ficheiro php.ini deixo-a para vocês, mas por enquanto podem simplesmente renomear o ficheiro 'php-ini.recommended' para 'php.ini'.

    Instalação do Eclipse com o plugin PDT

    Não obter a versão que se encontra no site do Eclipse. A versão correcta pode ser obtida no site da Zend. Encontram-se várias versões para os diferentes sistemas operativos no link http://downloads.zend.com/pdt/all-in-one/.
    A que eu escolhi foi esta. Este ficheiro inclui o Eclipse e os plugins WST e PDT.

    Instalação do Zend Debugger

    Este também inclui várias versões para os diferentes SOs que se encontram no link http://downloads.zend.com/pdt/server-debugger/. A versão escolhida foi esta. Descomprimir o ficheiro para a pasta dos Programas, por exemplo, C:/Programas/ZendDebugger-5.2.3-Windows-i386/.

    Configuração do Apache Server

    Abrir o ficheiro httpd.conf que se encontra na pasta APACHE_HOME/conf. No final do ficheiro colocar o seguinte texto:

    Code:
    LoadModule php5_module "c:/Programas/php/php5apache2_2.dll"
    AddType application/x-httpd-php .php  PHPIniDir "c:/Programas/php"

    Podem aproveitar este passo para mudar o porto de escuta do servidor. Procurem pela directiva Listen que deve ter o valor 80 e mudem para o porto que preferirem (eu escolhi o 3128). Guardar o ficheiro e reiniciar o servidor. Neste momento já deve ser possível visualizar uma página PHP. Para testar, criar uma página de teste que execute a função phpinfo(). A pasta raiz do servidor é APACHE_HOME/htdocs. Coloquem lá o ficheiro de testes e abram-no no navegador.

    Configuração do PHP

    Abrir o ficheiro php.ini que encontra em PHP_HOME. No final do ficheiro colocar o seguinte texto:

    Code:
     
    zend_extension_ts = C:/Programas/PHP/ZendDebugger-5.2.3-Windows-i386/5_2_x_comp/ZendDebugger.dll
    zend_debugger.allow_hosts = 127.0.0.1
    zend_debugger.expose_remotely = always
    zend_debugger.connector_port = 10013
     


    Reiniciar novamente o servidor Apache e visualizar a página de testes no browser. Deverá conter uma nova secção com o título Zend Debugger.

    Configuração do Eclipse

    Abrir o Eclipse. Se for a primeira vez irá surgir uma janela a perguntar a localização do Workspace (O Workspace é uma pasta que será a pasta raiz onde serão colocados por omissão os projectos novos criados).
    Localizar o menu Window->Preferences. Localizar na árvore de opções o nó PHP->PHP Servers. Editem o servidor pré-definido para apontar para o URL do servidor Apache. No meu caso, o URL é http://localhost:3128/.
    Seleccionar o nó PHP->PHP Debug e verifiquem as opções pré-definidas. Em princípio, estas opções devem já estar todas bem configuradas, mas aqui ficam as minhas:

    Debug Options:

  • Default Server: Default PHP Web Server

  • Default PHP Executable: PHP5

  • Default Transfer Encoding: ISO 10646/Unicode (UTF8)

  • Break at First Line OFF


  • Workspace Options:

  • Debug Port 10000

  • Use PHP Debug Perspective ON

  • Run with Debug Info ON

  • Open in Browser ON

  • Open PHP Debug Views ON


  • Para testar a funcionalidade de debug criar um projecto PHP, mas com a raiz da pasta de projecto em APACHE_HOME/htdocs (o meu projecto ficou em APACHE_HOME/htdocs/PHPTeste/). Embora o Eclipse possua a funcionalidade automática de publicar o site para o servidor, este não faz o pretendido. Ou é um bug ou foi algo que me escapou.

    Criar pelo menos dois ficheiros PHP, por exemplo, index.php e pagina1.php. Coloquem um link no ficheiro index.php que redireccione para a pagina1.php e coloquem algum código php com um breakpoint só para testar que o Eclipse pára lá.

    Na pagina1.php coloquem também algum codigo .php com um breakpoint. Esta página serve para testar que existe realmente uma sessão de debug a decorrer com a capacidade de transportar valores de variáveis de uma página para outra.


    Para fazer debug é necessário criar uma nova configuração de execução. Localizar o menu Run->Debug. Seleccionar o nó PHP Web Page e escolher a opção New.

    Deverá surgir uma nova janela onde é necessário indicar qual o ficheiro a partir do qual se deve iniciar a sessão. Indiquem o ficheiro index.php. No meu caso foi /PHPTeste/index.php.

    Desactivar a opção Auto-generate do URL e coloquem o URL do ficheiro index.php. Mais uma vez, na minha situação foi http://localhost:3128/PHPTeste/index.php.

    Carregar em Apply para guardar a configuração e carregar em Debug.

    Se tudo correr bem o Eclipse irá parar no primeiro breakpoint colocado no ficheiro index.php e escolhendo a perspectiva PHP Debug deve ser possível ver quais as variáveis existentes na página e os seus valores incluindo também os vectores especiais do PHP, nomeadamente, $_GET, $_POST, ....

    Se no navegador carregarem no link criado na página index.php verão que o Eclipse pára no primeiro breakpoint da página1.php.

    De notar que este tutorial pode ser aplicado a outros sistemas operativos tais como Linux e MAC OS.

    Espero que isto ajude a melhorar o vosso ambiente de desenvolvimento.

     

    Actualizado em ( 19-Fev-2008 )
     
    Artigo seguinte >

    Entrada






    Esqueceu a senha?
    Sem conta? Criar Conta!

    Newsletter

    Subscreva a nossa newsletter.