Skip to content

Monthly Archives: June 2008

Caçando erros de sintaxe em sistemas PHP

06-Jun-08

Como o PHP não é uma linguagem compilada, grande parte dos bugs de um sistema só são percebidos (e corrigidos) em ambiente de produção. Isso acontece principalmente se você mantém um sistema grande, pois se torna difícil validar todos os arquivos que são enviados para ambiente produção em cada nova release.

Porém, usando o PHP CLI (Command Line Interface) você consegue validar a sintaxe de um sistema inteiro de uma forma simples, fácil e rápida. Se você ainda não tem o PHP CLI instalado, você pode instalá-lo no Ubuntu (ou Debian) da seguinte forma:


$ sudo aptitude install php5-cli

Pronto, agora você tem acesso ao PHP via linha de comando:


$ php -r 'echo "Hello World!";'
Hello World!

Aproveite também dar uma olhada em todas as opções do PHP CLI porque ele tem bastante coisa legal e que podem ser muito úteis em vários casos. Uma dessas opções é o validador de sintaxe, ou seja, a opção -l.

Veja o exemplo de um arquivo sem problemas de sintaxe:


$ nl helloworld.php
     1  <?php
     2  echo 'Hello ';
     3  echo 'World!';
     4  ?>
$ php -l helloworld.php
No syntax errors detected in helloworld.php

E agora o mesmo arquivo com erros de sintaxe


$ nl helloworld.php
     1  <?php
     2  echo 'Hello '   // erro de sintaxe, faltando um ";" aqui
     3  echo 'World!';
     4  ?>
$ php -l helloworld.php

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in helloworld.php on line 3
Errors parsing helloworld.php

Agora você pode usar um pouco de bash junto com essa opção de checagem de sintaxe para validar todo o seu sistema PHP de uma só vez, como mostrado a seguir


$ find /var/www/meu-site -name *.php -exec php5 -l {} ";"

Claro que isso não garante que não hajam erros de lógica no seu sistema, mas encontrar e corrigir todos os erros de sintaxe antes de enviar o código para o cliente já um grande passo. É possível ainda criar um script muito mais elaborado do que o comando mostado acima, mas a idéia desse post era só mostrar o conceito mesmo.

É isso ae, abraços.

Por essa eu não esperava…

04-Jun-08

Agora eu realmente fiquei impressionado com o Google, por essa eu realmente não esperava! Acho que uma imagem vale mais do que mil palavras, então segue abaixo:

Google e o \"dedo do meio\"

Quer ver também? Tá ae.

E caso você tenha ficado em dúvida… Sim, era exatamente esta a figura que eu estava procurando, um dedo do meio. :)