2009-09-20 5 views
6

Existe-t-il un validateur PHP comme s'il y avait un validateur HTML sur w3.org?Existe-t-il un validateur PHP?

+6

Pour valider quoi? La syntaxe de PHP? Vous obtiendrez une erreur d'analyse si la syntaxe n'est pas valide. – Gumbo

+0

Je pense qu'il est à la recherche de quelque chose comme "charpie pour PHP". Cette question a déjà été posée ici: voir http://stackoverflow.com/questions/378959/is-there-a-static-code-analyzer-like-lint-for-php-files en particulier, PHPlint (http://www.icosaedro.it/phplint/) semble prometteur. – bart

Répondre

2

Moteur PHP lui-même.

Pour activer les messages d'erreur:

error_reporting(E_ALL); 
9

Vous pouvez exécuter php avec le drapeau -l ou --syntax-check. Il vérifie la syntaxe du fichier fourni sans réellement exécuter

php --syntax-check myfile.php 
16

Vous pouvez valider la syntaxe sans exécuter un script PHP lui-même, en utilisant php de la ligne de commande, avec l'option « -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) 
    ... 

par exemple, avec un fichier qui contient:

<?php 

, 


die; 

?> 

(Notez l'erreur évidente)

Vous obtiendrez:

$ 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 


Intégration cela dans un processus de construction, ou comme un crochet SVN pre-commit, est agréable, d'ailleurs: il aide à éviter d'avoir des erreurs de syntaxe dans la production ^^

2

Miser sur ce que les autres ont dit:

error_reporting(E_ALL); 

Simplement en utilisant les propres messages d'erreur de PHP est assez bon. Cependant, si vous voulez vraiment vous faire sodomiser et utiliser un ensemble "standard", vous pouvez opter pour un PHP Code Sniffer, que vous pouvez par exemple implémenter en tant que hooks de pré-commit sur votre système de contrôle de version.

est ici une question SO qui explique leur utilité: How useful is PHP CodeSniffer? Code Standards Enforcement in General?

Questions connexes