Programmation

Orientée

Objet

en PHP

Présentation

  • Développeur web freelance depuis 5 ans

  • http://www.boxydev.com

  • Expérience en agence web, E-Commerce (annonceur)

  • Formation Informatique et Autodidacte

  • Formateur et fan des OSS, contributeur à mes heures perdues

  • Solutions phares : Wordpress, Symfony, Magento, Prestashop, Angular

  • Langages : PHP, MySQL, HTML, CSS, JS

  • Outils : Git, Docker, Vagrant, Trello
  • Stack: ArchLinux, Gentoo, Mac OS (Unix addict)

Pourquoi ?

  • Réutilisation du code
  • Conception claire et organisée
  • Séparation du code
  • 1 objet = 1 métier avec contexte, méthodes et actions
  • Comparaison avec le monde réel
  • Code modulaire, travail en équipe
  • Masquer la complexité. Utilisation ou développement
  • Design Pattern = Patron de conception
  • Framework : Symfony, Silex, Laravel, ...

Comment ?

<?php

// Classe : Définition d'un "type" Animal
class Animal {}

// Objet : Instanciation de la classe Animal
$cat = new Animal();
  • La classe définit une structure
  • L'objet est une instance N de cette classe
  • Une instance est unique avec des propriétés uniques

La classe

<?php

class Animal {
    private $name;

    public function getName()
    {
        return $this->name;
    }
}
  • La classe décrit la structure d'un objet ("moule")
  • Définition de propriétés, attributs, caractéristiques
  • Définition de méthodes (fonctions)
  • Convention UpperCamelCase

Visibilité

<?php

class Animal {
    protected $name; // accessible par la classe enfant
    private $name; // accessible dans la classe
    public $name; // accessible partout...

    public function getName() // Getter d'une propriété
    {
        return $this->name;
    }

    public function setName($name) // Setter d'une propriété
    {
        $this->name = $name;
           
        // On peut retourner l'objet courant pour chaîner les méthodes "à la jQuery"
        return $this;
    }
}

$dog = new Animal();
$dog->setName('Gollum');
echo $dog->getName(); // Affiche "Gollum"
  • $this permet de récupérer l'objet courant, accès au contexte
  • public, private, protected

POO PHP

By Matthieu Mota