Un code est un comportement • Une fonction
• Attend une donnée
(2 entiers )
• Traite une données
(les additionne)
• Fournit une données
(1 entier) Comment s’en assurer ?
Modèle Objet PHP • Une Interface EST un contrat
• Ce contrat ne peut être rompu interface ChienInterface { public function aboyer(); public function manger(); public function dormir(); } « Implements »
=
« je m’engage à… sinon fouette-moi! »
Code source chargeable • Respectez le contrat de la PHP Standard Recommandation 0 (PSR-0)
• Un nom de classe commence par une majuscule
• Chaque namespace est séparé par un _ ou un \
• Chaque séparateur de namespace représente un niveau dans l’arborescence des dossiers
• Correspondance exacte entre le nom de la classe et le nom du fichier
Dépendance applicatives • Puissant
• Très utilisé et moderne
• Jeune "require": { "php": ">=5.3.3", "symfony/symfony": "2.2.*", "doctrine/orm": ">=2.2.3,<2.4-dev", "doctrine/doctrine-bundle": "1.0.*", "twig/extensions": "1.0.*« } Composer
Gherkin Fonctionnalité: posséder un compte bancaire Afin de gérer les comptes bancaires des utilisateurs En tant que client Je dois être capable d'effectuer des opérations basique sur mon compte
Scénario: Avoir un compte bancaire valide Etant donné que je suis un nouveau client Alors je dois avoir "0" euros sur mon compte
Scénario: Retirer de l'argent sur mon compte Etant donné que je suis un client Et que je possède "50" euros sur mon compte Quand je retire "10" euros Alors je dois avoir "40" euros sur mon compte
Intégration continue • Permet de s’assurer que, quoi qu’il se passe, un code qui ne respecte pas l’ensemble des contrats ne peut pas être mis en production