2010-07-16 6 views
2

J'utilise PHPClipse pour mon développement PHP. Il a une certaine mise en évidence de code et une autre validation telle qu'oublier de mettre un ';' à la fin d'une déclaration ou d'oublier « } » etc. Je trouve qu'il est facile de faire une erreur, par exempleValidation du code PHP strict

class foo { 
    private $test; 

    function __construct() { 
     $test = new stdClass; 
     $test->myVar = "hello"; 
    } 

    function getTest() { 
     echo $this->test->myVar; 
    } 
} 

Cela aurait dû être $this->test = 6;

Dans le code quand les choses comme cela arrive dans conditionals comme if else la seule fois que vous vous rendez compte est lorsque l'instruction else s'exécute qui pourrait être après la livraison du logiciel aux clients.

D'autres exemples peuvent afficher un avertissement lorsqu'une fonction d'une classe abstraite n'est pas implémentée.

Existe-t-il un moyen, particulièrement dans Eclipse, d'activer une sorte de validation STRICT qui met en évidence tout ce qui peut être un peu douteux?

+0

Je ne suis pas sûr que je comprends, est-il un erreur dans le code ci-dessus? – Znarkus

+0

Il n'y a pas d'erreur, le problème est que la variable de test $ est locale à la fonction où l'intention était d'utiliser la variable de classe. Il est facile de faire ces sortes d'erreurs en PHP. J'ai mis à jour la question pour utiliser un objet pour le rendre un peu plus clair. – jax

Répondre

1

Si vous utilisez la version PHPEclipse de http://www.phpeclipse.com/ il devrait y avoir des options d'analyse de code sous "Préférences/PHPEclipse/PHP/PHP Parser -> Style"

Vous pouvez sélectionner des avertissements pour les variables non initialisées et le code injoignable.

Je ne sais pas s'il y a quelque chose de semblable disponibles pour le développement PHP Outils projet http://www.eclipse.org/pdt/

Aucune case pour le code douteux, mais ...

+0

J'utilise PHPEclipse depuis http://www.eclipse.org/. Je ne trouve pas ce menu dont vous parlez. J'ai Fenêtre-> Préférences-> PHP-> éditeur-> Code Assist. Mais c'est tout et ils n'ont pas les avertissements que vous avez mentionnés. Ces versions sont-elles différentes? – jax

+0

Je l'installe maintenant. Quelle est la différence entre ceci et le PHP PDT? – jax

+0

Avertissement en retard, mais je ne pense pas qu'ils fonctionnent bien ensemble, donc vous pourriez vouloir l'installer sur une nouvelle installation d'éclipse ... –

0

Avertissements lors de l'utilisation d'un var local au lieu de l'objet var n'est pas quelque chose que vous devriez attendre de votre éditeur, c'est juste une mauvaise programmation.

Je sais pertinemment que Zend Studio effectue une analyse assez approfondie de votre code, par exemple en vous avertissant lorsque vous oubliez d'implémenter une certaine méthode.

+0

Une mauvaise programmation consiste à écrire de grandes fonctions, des algorithmes lents ou à écrire du code difficile à comprendre. Les fonctionnements originaux d'un langage de programmation particulier sont la faute des concepteurs et non des utilisateurs. On peut dire que c'est PHP qui est 'mauvais' car la distinction de syntaxe entre les membres locaux, globaux et de classe est un peu floue. – jax

+0

Les mots «mauvaise programmation» ne sont probablement pas les meilleurs. Ce que je voulais dire, c'est que c'est juste une erreur de programmeur, et qu'elle ne peut pas être détectée par un analyseur. Chose étrange de dire que PHP est mauvais car il fait la distinction entre la portée locale et la portée de l'objet. –