- Mettre en place une politique de qualité du code en équipe
- Mettre en place un outillage pour assurer et mesurer la qualité du code
- Utiliser un système de gestion de dépendances (package Manager) : Composer
- Maîtriser les tests unitaires et les tests de comportement en PHP
- Connaître les Design Patterns et éléments d'architecture des projets PHP
- Connaitre les principes KISS, DRY, SOLID, et les mettre en oeuvre
- Utiliser un système de build et un serveur d'intégration continue et outil de ticketing
- Mise en application : Suite de workshops autour d'une API REST avec PHP
- 3 jours
- développeurs PHP juniors et motivés !
- Notions de développement de page web avec HTML et côté serveur avec PHP
Courte présentation de chaque point, réponses aux questions, et travaux dirigés en groupe, sous la forme de workshops, un par chapitre de la formation.
Passionate open-source developer, enthusiastic learner, CTO at lespolypodes.com
- Qu'appelle-t-on exactement la "qualité"
- Définit un périmètre d'assurance qualité
- Partager l'information sur la qualité du code
- Actualité du langage PHP et de son écosystème
- Nouveautés de PHP 5.4.x / 5.5.x / 5.6.x
- PHP-FIG (Framework Interoperability Group) et les PSR (Proposed Standards Recommendations)
- Outils essentiels pour coder en PHP 5.x stable dans Vim+bundles, Eclipse+PHP Development Tools, Sublime ou PhpStorm
Workshop: Choisir et configurer un éditeur de code RAD: Vim+bundles, Eclipse+PHP Development Tools, SublimeText ou PhpStorm
- Utiliser plusieurs version de PHP (Mac / Windows / Linux)
- Configurer PHP selon que l'on soit en environmment de développement ou de production
- Comprendre les options de php.ini
- Utiliser Xdebug
- Configurer son IDE pour le debug pas-pas
- Définir un projet PHP avec composer.json
- Définir et obtenir les dépendances (bibliothèques PHP tierces)
- Trouver évaluer et intégrer des projets PHP Open-Source utiles dans un projet en cours
- Utiliser le pattern MVC
- Utiliser un ORM ? (Doctrine2) ou un OMM (POMM) ? ou rien du tout ?
- Utiliser le pattern Front Controller via un micro-framework PHP (Silex)
- Utiliser le Conteneur d'Injection de Dépendances (Pimple via Silex)
- Où commencent et s'arrêtent les tests : quoi et pourquoi tester du code ?
- Construire une assurance anti-régression en capitalisant sur les tests
- PHPUnit et les objectifs réels et utiles de couverture de code
- WebTestCase (Symfony2 ou Silex) : les tests fonctionnelles appliqués au web
- Behat et la business value réelle d'un développement PHP
- Présentation de Phing
- Présentation de Capistrano / Capiphony
- Ce bon vieux Makefile
- Présentation de Jenkins
- Présentation de Travis-ci
- Présentation Scrutinizer-ci
- Présentation de SISMO
- Gestion des demandes via les issues de Github
- Gestion des demandes via les issues de Bitbucket
- Gestion des demandes via Redmine
Workshop: Partger l'API Workshop sur Github et définir/qualifier/affecter un jalon, fixer via git commit
- Mesurer, avant de ré-écrire ou de prendre en charge une TMA
- Les premiers les indices de qualités : documentation, versioning, style, dépendances et couplages, error handling, paramétrages
- php-linting en pratique dans un IDE ou en ligne de commande
- La quality toolchain de PHP : phpcs, php-loc, phpmd, phpdcd, phpcpd
- Pourquoi choisir un Coding Style Standard ?
- Vérifier le respect un Coding Style Standard
- Corriger continuellement les erreurs de styles avec php-cs-fixer
- Au-delà du seul Coding Style Standard, défendre la lisibilité du code
- Le README.md, ou comment se mettre à la places des autres
- Comprendre et utiliser la syntaxe PHPDoc
- Faut-il commenter son code au-delà de phpdoc
- Générer une documentation avec PHPDoc
- KISS
- DRY
- SOLID PHP
- PHP jokes: typage et méthodes magiques
Workshop: Mettre en oeuvre une API REST en garder en tête ces principes, démontrer qu'ils sont respectés
Une petite présentation de HHVM et un exemple d'utilisation avec composer
Inspiration:
- phptherightway.com, phpbestpractices.org, phpqatools.org, Jenkins-PHP.org
- l'expertise et l'expérience du formateur