Contactez-nous

PHP Objet

Formation PHP Objet

PHP est le language de programmation web côté serveur le plus utilisé au monde. Créé en 1994 par Rasmus Lerdorf pour son site personnel (PHP signifiait à l'origine Personnal Home Page), le langage s'est professionnalisé avec les années et l'apparition des CMS et des frameworks (Drupal, Zend Framework, Laravel, Symfony...) et des outils de tests et de qualité de code. Cette formation couvre la partie objet de PHP et s'adresse en particulier aux développeurs désireux de développer pour des frameworks.

Objectifs

  • Maitriser les concepts objets de base
  • Savoir configurer un autoloader
  • Concevoir son propre modèle objet
  • Pouvoir étendre le code d’une bibliothèque
  • Identifier l’intérêt pour les Design Patterns

Pré-requis

  • Pouvoir écrire du code PHP procédural
  • Maitriser la syntaxe de PHP

Programme

Jour 1

  • Programmation orientée objet
    • Paradigme de programmation et historique
    • Classe vs Objet
    • Attributs, propriétés, champs
    • Visibilité : public, protected, private
    • Principe d’encapsulation
    • Méthodes, accesseurs ou getters/setters
  • Aller plus loin avec les objets
    • Namespace
    • PHP-FIG et ses normes PSR-1, PSR-2…
    • Autochargement de classe et PSR-4
    • Composer : gestion de dépendance
    • Constructeurs et destructeurs
    • Constantes
    • Exceptions : gestion des erreurs

Jour 2

  • Concevoir un modèle objet
    • Types scalaires vs objet
    • Références, clone et pseudo-variable $this
    • Associations unidirectionnelles, bidirectionnelles, self-referencing
    • Héritage et redéfinition
  • Concevoir ou étendre une bibliothèque
    • Principes SOLID et KISS
    • PSR-3, créer une bibliothèque de log
    • Polymorphisme
    • Interfaces
    • Classes abstraites
    • Traits
    • Static et mot clé self
    • Classes ou méthodes finales

Jour 3

  • Les particularités de PHP
    • Type hinting
    • Autres méthodes magiques
    • Constantes magiques
    • Sérialisation
    • Extension d’objet
    • Accès aux propriétés mères ou filles
    • Interfaces du langage et SPL
    • Les classes PDO, SimpleXML, Datetime
    • Classes anonymes
  • Quelques Design Patterns
    • Gang of Four / Martin Fowler
    • Factory et Builder
    • Adapter et Proxy
    • Injection de dépendance et Conteneurs
    • MVC : Modèle Vue Contrôleur