Page 1 sur 1

Coupler PHPCS et SVN

Posté : 18 nov. 2013, 15:03
par BaLiSTiK
Bonjour,

Utilisateur de Zend Studio, j'ai lu sur la doc PEAR de PHPCS (PHP CodeSniffer), qu'il est possible de passer un coup de CS avant de faire un commit SVP.
Mais je ne trouve pas comment configurer ça sous Zend Studio / Eclipse.
Si vous avez la réponse, merci pour le coup de pouce :mrgreen:

Lien documentation : http://pear.php.net/manual/fr/package.p ... commit.php

Re: Coupler PHPCS et SVN

Posté : 18 nov. 2013, 22:50
par moogli
salut,

qu'as tu essayé ?

As tu installé phpcs avec pear dans ta distrib php ?

Ensuite le reste se passe au niveau de svn et pas de php ou de zend studio.
google peux t'aider a comprendre ce que sont les hook svn et par exemple avec un exemple pour php ;)


@+

Re: Coupler PHPCS et SVN

Posté : 19 nov. 2013, 10:16
par BaLiSTiK
salut,

qu'as tu essayé ?

As tu installé phpcs avec pear dans ta distrib php ?

Ensuite le reste se passe au niveau de svn et pas de php ou de zend studio.
google peux t'aider a comprendre ce que sont les hook svn et par exemple avec un exemple pour php ;)


@+
Etant en entreprise "grand compte", PHPCS est bien présent mais pas pas PEAR mais fournit avec d'autres outils qui sont ajoutés dans ZS, et ajouté en tant que "librairies externes". J'utilise le SVN de Zend Studio (je n'ai pas Tortoise SVN d'installé par exemple).
Je n'ai pas essayé grand chose car j'ai des trucs plus importants à faire, mais c'est une idée que je me suis posé à savoir si c etait faisable ou non, surtout suivant ma configuration de poste.
S'il n'y a pas de solutions, pas grave :D mais en tout cas, merci pour ta réponse

Re: Coupler PHPCS et SVN

Posté : 20 nov. 2013, 13:19
par moogli
Comme indiqué dans le lien il te faut juste ajouter un répertoire dans ton repo svn local avec dedans les script qui vont bien.

L'exemple est celui qu'il te faut même si c'est phpcs que tu doit lancer et pas seulement php ;)
Il s'agit d'un script UNIX mais c'est sûrement adaptable pour Windows ou Max suivant ta plateforme de dev ;)


edit : j'allais oublier :
ce type de chose risque de rendre le commit plus que lente et du coup n'est possible que si le dit commit n'est qu'épisodique :) (tu ne fait 4 commit différents en une heure sinon tu passe autant de temps au commit qu'a dev ;) ).

tu peux t'orienter vers des solutions d'intégration continue tel que le couple jenkins et sonar (l'analyse sonar va te utiliser phpcs) qui peux te permettre de pakager ton appli automatiquement (par exemple faire un tar.gz ou phar (avec phing pourquoi pas) et te fournir des métriques qualitatif sur le code.
violation des régles de codage truc suspect etc etc) le tous avec des graphs et les endroits précis qui pose soucis.
tu as des test unitaire (qu'avec junit je crois par contre :/) tu peux les lancer avec l'ic et conditionner ton build en fonction des résultats.

cela peux te permetre de créer des snapshot / nightly build sans te prendre la tête mais aussi de deployer tes dev sur tes serveurs quand tu le souhaite (basé sur le svn tu peux aussi choisir de lancer des build en fonction d'une branches / tags).

je pense que ton idée est pas mal mais que tu peux aller beaucoup plus loin avec des choses moins bloquante (après tout un reverse dans le svn c'est pas complexe) ;)


@+

Re: Coupler PHPCS et SVN

Posté : 20 nov. 2013, 17:03
par BaLiSTiK
Merci pour ta réponse mais il se trouve que j'utilise déjà le couple Jenkins/Sonar :) . Ma mission en tant que prestataire consistait en partie à mettre en place les pratiques de l'Intégration Continue parmi l'équipe de développeur, avec notamment le paramétrage de Jenkins, les règles de violations de Sonar, l’interprétation des resultats données par Sonar après le lancement d'un build, l'utilisation de CodeSniffer et du debugger sur les plateformes de devs', et au final les tests unitaires.

Avec ce que tu me dis, je pense que l'idée de couplet PHPCS avec SVN n'est pas forcement une bonne chose car dans un premier temps je pense qu'il faut forcer le développeur à lancer manuellement PHPCS sur ces scripts pour qu'il prenne rapidement des automatismes, et plus tard (quand ma ma mission sera finie :mrgreen: ) pourquoi pas coupler les deux choses ^^.

Je met en résolu mais la discussion peut quand même continuer :D