Erros de Sintaxe em Scripts PHP - Blog de PHP
Erros de Sintaxe em Scripts PHP
Artigo que explica como detectar erros de sintaxe em scripts PHP através do terminal de comandos.
Categorias: certificação, php, sintaxe, tutorial
Para detectar erros de sintaxe no PHP, podemos executar o php, no terminal de comandos, passando o parâmetro "-l" (lint), conforme o exemplo:
Isso é útil quando queremos apenas saber se há erros de sintaxe, mas não queremos executar, de fato, o script.
OK, mas muitos já conhecem este recurso. O problema é que, as vezes, executar este comando não retorna exatamente onde está o erro (diz apenas que há um erro). Nestes casos, você recebe a seguinte mensagem:
Errors parsing script.php
Recentemente descobri que essa mensagem simplificada é mostrada em função da configuração da diretiva error_reporting (no php.ini). Para que sejam mostrados detalhes sobre o erro de parser, você precisa configurar a diretiva error_reporting para, pelo menos, exibir erros do tipo E_PARSE.
Já falei sobre configurações do php.ini, e sobre máscaras binárias, que são necessárias para configurar a diretiva error_reporting, então leia estes artigos para mais detalhes.
Uma forma simples de evitar a mensagem simplificada é utilizar o parâmetro "-n", que diz ao PHP para não utilizar o php.ini ou o php-cli.ini. Então, o valor da diretiva error_reporting utilizado passa a ser o seu valor padrão, que é E_ALL & ~E_NOTICE (todos os erros, exceto notificações). Como o valor E_ALL inclui o valor E_PARSE (pela máscara binária), então ela mostra os erros de parser. Veja o exemplo:
$ php -ln script.php
Parse error: syntax error, unexpected '=' in script.php on line 3
Esta é a forma simplificada, mas pode ser que você queira utilizar as configurações do php.ini, mas queira mudar apenas o valor da diretiva error_reporting. Neste caso, use o parâmetro "-d" para configurá-la manualmente:
$ php -d error_reporting=E_ALL -l script.php
PHP Parse error:  syntax error, unexpected '=' in script.php on line 3
Postado no Blog por Rubens Takiguti Ribeiro em 24/06/2012 às 23:38:00 Atualizado no Blog em 24/06/2012 às 23:38:00 | 1 comentário