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.

E2ed7c278c8c49bb3e7fe0b7de039997?s=128

Hugo Hamon

June 15, 2012
Tweet

Transcript

  1. Gardez le contrôle de vos projets PHP ! Hugo Hamon

    (@hhamon) – Web Event Lyon – 15 juin 2012
  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. Standardisation

  9. $nb_apples = 10; $nbPears = 5; $f = $nb_apples +

    $nbPears; if ($f > 15) { // do something... } Standardisation
  10. None
  11. Documentation

  12. /** * Sets the PlatformInterface object for this database. *

    * @param PlatformInterface $platform A Platform object */ public function setPlatform(PlatformInterface $platform) { $this->platform = $platform; } PHP Documentation
  13. Patrons de Conception

  14. Pair Programming

  15. Revue de code

  16. None
  17. PHP LOC

  18. None
  19. PHP CPD

  20. None
  21. Fichier 1 Fichier 2

  22. PHP CodeSniffer

  23. None
  24. None
  25. None
  26. PHP CS Fixer

  27. Avant

  28. Après

  29. PHP Depend

  30. PHP Depend

  31. None
  32. PHP Mess Detector

  33. PHP Mess Detector

  34. PHP Mess Detector

  35. Tests automatisés

  36. Tests unitaires

  37. Couverture de code

  38. Couverture de code

  39. Tests fonctionnels

  40. None
  41. Intégration Continue

  42. None
  43. # .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
  44. None
  45. $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;
  46. None
  47. None
  48. java –jar jenkins.war

  49. None
  50. Inspection Continue

  51. 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)
  52. None
  53. None
  54. Violations de codage

  55. Revue de code

  56. Points chauds

  57. Vue par composant

  58. @hhamon hugo.hamon@sensiolabs.com