Worshop à FST le 26-04-2014 : Assurer la Qualité du code des projet Symfony2
PS : Le guide d'installation de PHP CodeSniffer n'est plus d'actualité, vous trouvez un à jour sur mon blog : https://medrhamnia.wordpress.com/2015/09/23/verifier-le-respect-des-normes-de-codage-de-votre-projet-symfony2-avec-php-code-sniffe/
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
Assurer la Qualité du code des projet Symfony2
1. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Assurance qualité sur les projets Symfony
Mohammed Rhamnia
Symfony-Tunisie
26 avril 2014
Mohammed Rhamnia Assurance qualité sur les projets Symfony
2. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Qui suis-je ?
Mohammed Rhamnia
Symfonian depuis 6 ans.
Ingénieur Développeur
chez Edatis.
Consultant Symfony
Indépandant.
Mohammed Rhamnia Assurance qualité sur les projets Symfony
3. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Les critères de qualité
Les critères pour un Symfonian
C’est quoi la Qualité ?
Pouvez-vous comprendre votre code aprés quelques temps ?
Es ce que les autres peuvent comprendre votre code ?
Es ce que votre application a été bien testé ?
Avez vous déjà publié un code buggé ?
Es ce que votre code a été bien documenter ?
Mohammed Rhamnia Assurance qualité sur les projets Symfony
4. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Les critères de qualité
Les critères pour un Symfonian
Les critères de qualité
Capacité fonctionelle
Fiabilité
Facilité d’utilisation
Maintenabilité
Rendement / Scalabilité
Portabilité
Mohammed Rhamnia Assurance qualité sur les projets Symfony
5. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Les critères de qualité
Les critères pour un Symfonian
Les critères de qualité pour un Symfonian
Mise en forme
Tests
Documentation
Mohammed Rhamnia Assurance qualité sur les projets Symfony
6. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP_CODE_SNIFFER
PHPCS : Detecteur des violation des conventions de codage
Une classe par fichier.
Tout documenter.
Organisation des méthodes.
camelCase
http://symfony.com/doc/current/contributing/code/
standards.html
Mohammed Rhamnia Assurance qualité sur les projets Symfony
7. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP CODE SNIFFER
~$ pear install PHP_CodeSniffer
~$
~$ pear config -show | grep php_dir
~$
~$ cd /path/to/pear/PHP/CodeSniffer/
Standards
~$
~$ git clone git :// github.com/opensky/
Symfony2 -coding -standard.git Symfony2
~$
~$ phpcs --config -set default_standard
Symfony2
Mohammed Rhamnia Assurance qualité sur les projets Symfony
8. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP CODE SNIFFER
Mohammed Rhamnia Assurance qualité sur les projets Symfony
9. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP Mess Detector
PHPMD : Assurer la qualité de code.
Code inutile.
Imbrications trop complexes.
CPD
Dead Code
Mohammed Rhamnia Assurance qualité sur les projets Symfony
10. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP Mess Detector
~$ pear channel -discover pear.phpmd.org
~$
~$ pear channel -discover pear.pdepend.org
~$
~$ pear install --alldeps phpmd/PHP_PMD
~$ phpmd repertoire_a_tester
format_de_sortie[text|html|xml] rulesets[
codesize|unusedcode|naming|design]
Mohammed Rhamnia Assurance qualité sur les projets Symfony
11. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP Mess Detector
Mohammed Rhamnia Assurance qualité sur les projets Symfony
12. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Pourquoi Tester ?
BUT : Assurer la bonne qualité de projet
Tests fonctionnels
Tests de performance
Tests de robustesse
Tests de vulnérabilité
Mohammed Rhamnia Assurance qualité sur les projets Symfony
13. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PhpUnit
PhpUnit : Framework pour créers des testes pour des applications
php.
Tests fonctionnels
Tests Unitaire
~$ pear config -set auto_discover 1
~$
~$ pear install pear.phpunit.de/PHPUni
Mohammed Rhamnia Assurance qualité sur les projets Symfony
14. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Unitaire
// src/Acme/DemoBundle/Utility/
Calculator.php
namespace AcmeDemoBundleUtility;
class Calculator
{
public function add($a , $b)
{
return $a + $b;
}
}
Mohammed Rhamnia Assurance qualité sur les projets Symfony
15. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Unitaire
// src/Acme/DemoBundle/Tests/Utility/
CalculatorTest.php
namespace AcmeDemoBundleTestsUtility;
use AcmeDemoBundleUtilityCalculator;
class CalculatorTest extends
PHPUnit_Framework_TestCase
{
public function testAdd ()
{
$calc = new Calculator ();
$result = $calc ->add(10, 10);
$this ->assertEquals (20, $result);
}
} Mohammed Rhamnia Assurance qualité sur les projets Symfony
16. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Unitaire
~$ cp app/phpunit.xml.dist app/phpunit.
xml
~$
~$ phpunit -c app src/Acme/DemoBundle/
Tests/Utility/CalculatorTest.php
Mohammed Rhamnia Assurance qualité sur les projets Symfony
17. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Fonctionelle
Mohammed Rhamnia Assurance qualité sur les projets Symfony
18. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Sami
Sami : Yet another PHP API documentation generator.
Facile à installer
Rapide
Moderne
~$ git clone https :// github.com/fabpot/Sami.
git ./ sami
~$ cd sami
~$ composer install
~$ php sami.php update ../ pull/SamiConfig.
php
Mohammed Rhamnia Assurance qualité sur les projets Symfony
19. Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Merci
Mohammed Rhamnia Assurance qualité sur les projets Symfony