2009-09-20 17 views
6

¿Hay un validador de PHP como si hubiera un validador de HTML en w3.org?¿Hay un validador de PHP?

+6

Para validar qué? Sintaxis de PHP? Obtendrá un error de análisis si la sintaxis no es válida. – Gumbo

+0

Creo que está buscando algo así como "pelusa para PHP". Esa pregunta se ha realizado aquí antes: consulte http://stackoverflow.com/questions/378959/is-there-a-static-code-analyzer-like-lint-for-php-files en particular, PHPlint (http://www.icosaedro.it/phplint/) parece prometedor. – bart

Respuesta

2

Motor PHP en sí.

Para activar los mensajes de error:

error_reporting(E_ALL); 
9

Puede ejecutar php con la bandera -l o --syntax-check. Se comprueba la sintaxis del archivo suministrado sin llegar a ejecutarlo

php --syntax-check myfile.php 
16

Usted puede validar la sintaxis sin ejecutar un script PHP en sí, utilizando php desde la línea de comandos, con la opción "-l":

$ php --help 
Usage: php [options] [-f] <file> [--] [args...] 
     php [options] -r <code> [--] [args...] 
     php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] 
     php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] 
     php [options] -- [args...] 
     php [options] -a 
    ... 
    -l    Syntax check only (lint) 
    ... 

Por ejemplo, con un archivo que contiene:

<?php 

, 


die; 

?> 

(Tenga en cuenta el error evidente)

que obtendrá:

$ php -l temp.php 
PHP Parse error: syntax error, unexpected ',' in temp.php on line 3 

Parse error: syntax error, unexpected ',' in temp.php on line 3 
Errors parsing temp.php 


La integración de esta en un proceso de construcción, o como un pre-commit SVN gancho, es agradable, por cierto: se ayuda a evitar que tienen errores de sintaxis en la producción ^^

2

sobre la base de lo que han dicho:

error_reporting(E_ALL); 

Simplemente usar los propios mensajes de error de PHP es suficiente. Sin embargo, si realmente desea obtener un anal y usar un "estándar" establecido, puede optar por PHP Code Sniffer, que por ejemplo puede implementar como enlaces de precompromiso a su sistema de control de versiones.

He aquí una pregunta SO lo que explica su utilidad: How useful is PHP CodeSniffer? Code Standards Enforcement in General?

Cuestiones relacionadas