Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gardez le contrôle de vos projets PHP

Gardez le contrôle de vos projets PHP

Assurer et suivre au quotidien la qualité des projets PHP n'est pas une tâche facile. C'est d'autant plus vrai avec PHP qui souffre encore aujourd'hui d'une image de langage peu professionnel. Et pourtant, depuis quelques années, PHP s'équipe d'outils professionnels pour suivre et mesurer objectivement la qualité du code. Cette conférence met en avant les pratiques de tests unitaires automatisés, d'intégration continue avec Jenkins et d'inspection continue avec Sonar Source. Les nombreux outils d'inspection du code PHP seront mis à l'honneur.

Hugo Hamon

June 15, 2012
Tweet

More Decks by Hugo Hamon

Other Decks in Technology

Transcript

  1. Gardez le contrôle de vos
    projets PHP !
    Hugo Hamon (@hhamon) – Web Event Lyon – 15 juin 2012

    View full-size slide

  2. Standardisation

    View full-size slide

  3. $nb_apples = 10;
    $nbPears = 5;
    $f = $nb_apples + $nbPears;
    if ($f > 15) {
    // do something...
    }
    Standardisation

    View full-size slide

  4. Documentation

    View full-size slide

  5. /**
    * Sets the PlatformInterface object for this database.
    *
    * @param PlatformInterface $platform A Platform object
    */
    public function setPlatform(PlatformInterface $platform)
    {
    $this->platform = $platform;
    }
    PHP Documentation

    View full-size slide

  6. Patrons de Conception

    View full-size slide

  7. Pair Programming

    View full-size slide

  8. Revue de code

    View full-size slide

  9. Fichier 1
    Fichier 2

    View full-size slide

  10. PHP CodeSniffer

    View full-size slide

  11. PHP CS Fixer

    View full-size slide

  12. PHP Mess Detector

    View full-size slide

  13. PHP Mess Detector

    View full-size slide

  14. PHP Mess Detector

    View full-size slide

  15. Tests automatisés

    View full-size slide

  16. Tests unitaires

    View full-size slide

  17. Couverture de code

    View full-size slide

  18. Couverture de code

    View full-size slide

  19. Tests fonctionnels

    View full-size slide

  20. Intégration Continue

    View full-size slide

  21. # .travis.yml
    language: php
    php:
    - 5.3.3
    - 5.3
    - 5.4
    before_script:
    - curl -s http://getcomposer.org/installer | php
    - COMPOSER_ROOT_VERSION=dev-master php
    composer.phar --dev install
    script: phpunit

    View full-size slide

  22. $projects = array();
    $path = '/Users/Hugo/Development/Propel2';
    $propel2 = new Sismo\GithubProject('Propel2', $path);
    $propel2->setBranch('master');
    $propel2->setCommand('phpunit');
    $propel2->setSlug('propel2');
    $projects[] = $propel2;
    return $projects;

    View full-size slide

  23. java –jar jenkins.war

    View full-size slide

  24. Inspection Continue

    View full-size slide

  25. Dette technique
    « Chaque minute passée sur du
    code non conforme est un intérêt
    supplémentaire qui s’ajoute à sa
    dette technique. » Ward Cunninghman (1992)

    View full-size slide

  26. Violations de codage

    View full-size slide

  27. Revue de code

    View full-size slide

  28. Points chauds

    View full-size slide

  29. Vue par composant

    View full-size slide