POO en PHP : Guide du débutant

Regex en PHP
Constructeurs et destructeurs en PHP

La programmation orientée objet (POO) est un paradigme de programmation qui représente et manipule des données et des comportements à l'aide d'objets, qui sont des instances de classes. PHP fournit un support OOP via une collection de fonctions et de structures intégrées.

Une classe en PHP est un modèle pour la construction d'objets. Une classe définit un objet propriétés (également appelées variables membres ou attributs) et méthodes (également appelées fonctions membres ou comportements). Les termes « var » et « fonction » sont utilisés dans la classe pour spécifier respectivement les propriétés et les méthodes. Voici un exemple de classe PHP de base :

class Person {
    var $name;
    var $age;

    function setName($name) {
        $this->name = $name;
    }

    function getName() {
        return $this->name;
    }

    function setAge($age) {
        $this->age = $age;
    }

    function getAge() {
        return $this->age;
    }
}

La classe "Person" dans cet exemple contient deux propriétés : $name et $age. Il existe également quatre méthodes : setName(), getName(), setAge() et getAge(). Ces méthodes sont utilisées pour set et récupérer les valeurs des propriétés. Il convient de noter que le terme "this" fait référence à l'objet courant dans la classe.

Pour créer un objet de classe, nous utilisons le mot-clé "new" suivi du nom de la classe. Voici un exemple :

$person = new Person();

Une fois que nous avons un objet, nous pouvons utiliser les méthodes de la classe pour définir et obtenir les valeurs des propriétés :

$person->setName("John Doe");
$person->setAge(30);

echo $person->getName(); // prints "John Doe"
echo $person->getAge(); // prints "30"

L'héritage est un concept fondamental de la programmation orientée objet qui permet à une classe d'hériter des attributs et des fonctions d'une autre. Une sous-classe ou classe dérivée est celle qui hérite d'une autre classe, tandis que la classe dont elle hérite est appelée superclasse ou classe de base.

Voici un exemple de sous-classe "Student" qui dérive de la superclasse "Person":

class Student extends Person {
    var $studentId;

    function setStudentId($id) {
        $this->studentId = $id;
    }

    function getStudentId() {
        return $this->studentId;
    }
}

Dans cet exemple, la classe Student hérite de toutes les propriétés et méthodes de la classe Person et y ajoute une nouvelle propriété $studentId et les méthodes setStudentId() et getStudentId().

$student = new Student();
$student->setName("Jane Doe");
$student->setAge(20);
$student->setStudentId("123456");

echo $student->getName(); // prints "Jane Doe"
echo $student->getAge(); // prints "20"
echo $student->getStudentId(); // prints "123456"

Interfaces sont un type de contrat qui spécifie un ensemble de méthodes qu'une classe doit implémenter. Le mot-clé interface est utilisé pour définir un interface, et il ne peut inclure que des signatures de méthode, pas des corps de méthode.

Voici un exemple d'interface "Shape" qui définit un ensemble de méthodes pour les formes :

interface Shape {
    public function getArea();
    public function getPerimeter();
}

Une classe qui implémente une interface doit définir les méthodes spécifiées dans l'interface. Voici un exemple de classe "Rectangle" qui implémente l'interface Shape :

class Rectangle implements Shape {
    private $width;
    private $height;

    public function __construct($width, $height) {
        $this->width = $width;
        $this->height = $height;
    }

    public function getArea() {
        return $this->width * $this->height;
    }

    public function getPerimeter() {
        return 2 * ($this->width + $this->height);
    }
}

Dans cet exemple, la classe Rectangle implémente les fonctions getArea() et getPerimeter() de l'interface Shape. Nous pouvons maintenant construire un objet Rectangle et utiliser son méthodes:

$rectangle = new Rectangle(5, 10);
echo $rectangle->getArea(); // prints "50"
echo $rectangle->getPerimeter(); // prints "30"

Cours, objets, héritage, et les interfaces sont les idées fondamentales de la POO en PHP. Il existe de nombreux principes sophistiqués supplémentaires qui peuvent être appliqués en PHP pour rendre le logiciel plus modulaire, gérable et réutilisable, tels que les classes abstraites, le polymorphisme, l'encapsulation, etc.

Il est crucial de se rappeler que la POO n'est qu'un paradigme en PHP ; il existe de nombreuses autres méthodes pour construire du code PHP ; pourtant, la POO est largement utilisée et considérée comme une pratique recommandée dans le développement PHP actuel.

Questions et réponses

Q : Qu'est-ce que la programmation orientée objet (POO) ?
R : La POO est un paradigme de programmation qui représente et manipule des données et des comportements à l'aide d'objets, qui sont des instances de classes.

Q : PHP prend-il en charge la POO ?
R : Oui, PHP est un langage de script côté serveur populaire qui inclut des fonctions et fonctionnalités intégrées pour activer la POO.

Q : Comment créer un objet en PHP ?
R : Pour créer un objet d'une classe, nous utilisons le mot clé « new », suivi du nom de la classe. Par exemple : $person = new Person();

Q : Qu'est-ce que l'héritage en POO ?
R : L'héritage est un aspect fondamental de la POO qui permet à une classe d'hériter des propriétés et des méthodes d'une autre classe.

Q : Pouvez-vous expliquer ce que sont les interfaces ?
R : Les interfaces sont un moyen de définir un contrat pour une classe, en spécifiant un ensemble de méthodes que la classe doit implémenter.

Q : Existe-t-il d'autres concepts avancés de POO en PHP ?
R : Oui, il existe de nombreux principes sophistiqués supplémentaires qui peuvent être appliqués en PHP pour rendre le programme plus modulaire, gérable et réutilisable, comme les classes abstraites, le polymorphisme, l'encapsulation, etc.

Des exercices:

  1. Quelle est la syntaxe pour créer une classe en PHP ?
  2. Comment définir une méthode constructeur dans une classe PHP ?
  3. Quelle est la différence entre une méthode statique et une méthode non statique dans une classe PHP ?
  4. Comment pouvez-vous créer un objet à partir d'une classe en PHP ?
  5. A quoi sert le mot clé "extends" dans une classe PHP ?

Réponses:

  1. La syntaxe pour créer une classe en PHP est "class ClassName {}"
  2. La méthode constructeur d'une classe PHP peut être définie à l'aide de la fonction __construct().
  3. Une méthode statique peut être appelée sans créer d'objet de la classe, alors qu'une méthode non statique nécessite la création d'un objet et peut ensuite être appelée.
  4. Un objet peut être créé à partir d'une classe en PHP en utilisant le mot-clé "new", suivi du nom de la classe, et en l'affectant à une variable. par exemple $object = new ClassName;
  5. Le mot clé "extends" dans une classe PHP est utilisé pour indiquer qu'une classe est héritée d'une classe parent. Il permet à une classe d'hériter des propriétés et des méthodes d'une autre classe.
Regex en PHP
Constructeurs et destructeurs en PHP
en English
X
Remonter en haut