Introduction
Rappels POO en PHP
Gestion du contexte applicatif
S'adapter à la version PHP : nouveautés, dépréciations et retraits, revue des versions actuelles
Design Patterns
Présentation et principe ; intéret des Design Patterns
Design Patterns spécifiques au Web
L'architecture MVC
Le Singleton, Factory, Builder
Le Proxy, Adapter, Bridge
L'Iterator, Observer
L'injection de dépendance
Atelier : Implémenter plusieurs design pattern
Créer des PDF en PHP
Choisir son approche, batisseur, convertisseur ou imprimante PDF
Construire un PDF, ajouter des pages, des contenus
Convertir une page web en PDF
Gérer les chemins vers les ressources externes : feuilles de styles, images
Exploiter l'imprimante PDF d'un navigateur (wkhtmltopdf)
Atelier : créer des PDF
Les bases de données
Rappels : Accès à une base de données
Notions de base SQL & NoSQL
Introduction au Mapping Relationnel Object
Intérêt et avantage à l'utilisation d'un ORM
ORM PHP: Doctrine, Propel
Atelier : Installer et utiliser un ORM
Cryptographie
Principes et Notions de cryptographie
Distinguer Chiffrement et Hachage
Choisir son algorithme (puissance / cout) selon l'objectif
L'extension PHP de chiffrement : OpenSSL
Les extensions PHP de hachage : Hash et Password_hash
Atelier : Créer une classe de Chiffrement
Web Services
Présentation des services web et d'une architecture SOA
Présentation du Web Services Description Language (WSDL)
La bibliothèque SOAP de php
Présentation d'une architecture REST
Atelier : Réalisation d'un Service Web REST
Les Tests en PHP
Bibliothèques de test Unitaire: PHPUnit, PHPSpec
Installation de PHPUnit
Ecriture d'une classe de test
Utilisation des assertions
Les helpers PHPUnit_Framework_TestCase
Utiliser les dépendances d'objet: Les Mocks
Exécution des tests
Atelier : Tester plusieurs classes
Déploiement d'applications PHP
Sécurité des scripts PHP : éviter les failles
Se prémunir des attaques Cross-Site Scripting (XSS)
Eviter les injections SQL
Se protéger contre le Cross-Site Request Forgery (CSRF)
Gestion des erreurs et des exceptions PHP
Atelier : Protéger son application des failles php
Etude de cas : Utilisation d'un Framework
Introduction à CodeIgniter
Utiliser l'architecture MVC
Gestion des urls
Lier un controller à une url
Associer une vue à un controller
Utiliser les modèles
Atelier : Créer une application avec CodeIgniter