• Ce blog — désormais archivé — est en lecture seule.

Symfony, Jenkins & co

Bonjour,

Depuis quelques temps j’ai repris mes travaux déjà énoncés symfony rencontre Hudson, Mantis et les autres. J’ai mis à disposition un template générique d’un build.xml pour Phing exclusivement, accessible sur mon Github : jenkins-phing-symfony. Il permet d’analyser son code symfony 1.x avec à peu près tous les outils en vogue du moment.

A ce propos, PHPLoc ne comporte pas de tâche Phing mais Raphael Stolt en a écrit une qui semble fonctionner : phploc-phing.

A noter également qu’il faut passer une variable à ce script pour indiquer le nom du projet:

    phing main -DprojectName=$JOB_NAME

Plusieurs targets sont disponibles :

  • main : Lance tout ce qui suit ;
  • clean ;
  • pdepend : Lance l’analyse de code statique avec PHP Depend ;
  • phpcpd : Lance l’analyse de code dupliqué PHPCPD ;
  • phpcs : Lance l’analyse checkstyle avec PHP_CodeSniffer ;
  • phpdoc : Lance la génération de la documentation avec phpDocumentor ;
  • phploc : Lance l’analyse PHPLoc ;
  • phpmd : Lance l’analyse PHP Mess Detector.

D’autre part, j’ai mis à jour mes règles Checkstyle (PHP_CodeSniffer) pour symfony 1.x : phpcs-symfony.

    <?xml version="1.0"?>
    <ruleset name="Symfony">
      <description>symfony coding standard</description>
      <!-- Tab indentation -->
      <rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
      <!-- symfony uses 2 spaces to indent -->
      <rule ref="Symfony.WhiteSpace.ScopeIndent"/>
      <!-- -->
      <rule ref="Generic.ControlStructures.InlineControlStructure"/>
      <!-- -->
      <rule ref="Symfony.ControlStructures.ControlSignature"/>
      <!-- ensures there is no space after cast tokens -->
      <rule ref="Generic.Formatting.SpaceAfterCast"/>
      <!-- ensures that variables are not passed by reference when calling a function -->
      <rule ref="Generic.Functions.CallTimePassByReference"/>
      <!-- PHP constants should be lowercase -->
      <rule ref="Generic.PHP.LowerCaseConstant"/>
      <!-- No spaces on square brackets -->
      <rule ref="Squiz.Arrays.ArrayBracketSpacing"/>
      <!-- Don't allow ELSEIF, just ELSE IF -->
      <rule ref="Squiz.ControlStructures.ElseIfDeclaration"/>
      <!-- Ensures there is a space between each condition of foreach loops -->
      <rule ref="Squiz.ControlStructures.ForEachLoopDeclaration"/>
      <!-- Ensures there is a space between each condition of for loops -->
      <rule ref="Squiz.ControlStructures.ForLoopDeclaration"/>
      <!-- Ensures all control structure keyworkds are lowercase -->
      <rule ref="Squiz.ControlStructures.LowercaseDeclaration"/>
      <!-- Ensures all calls to inbuilt PHP functions are lowercase -->
      <rule ref="Squiz.PHP.LowercasePHPFunctions"/>
      <!-- Verifies that class members have scope modifiers -->
      <rule ref="Squiz.Scope.MemberVarScope"/>
      <!-- Verifies that class members have scope modifiers -->
      <rule ref="Squiz.Scope.MethodScope"/>
    </ruleset>

Après exécution sur mes projets, ces règles permettent de bien respecter les standards imposés par symfony 1.x (uniquement).

Voilà pour les nouvelles :-)

  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz

Related Posts

Cet article a été publié dans symfony avec les mots-clefs : , , , , , , , . Bookmarker le permalien. Les commentaires et les trackbacks sont fermés.