Pratique sur l'application des interfaces en POO en PHP

Essayons l'application des interfaces en pratique. Résolvons la tâche sur les figures de la leçon précédente, mais en utilisant des interfaces, et non des classes abstraites.

Ainsi, nous avons maintenant l'interface Figure :

Figure.php<?php
  interface Figure
  {
    public function getSquare();
    public function getPerimeter();
  }
?>

Écrivons la classe Quadrate qui implémentera les méthodes de cette interface :

Quadrate.php<?php
  class Quadrate implements Figure
  {
    private $a;
    
    public function __construct($a)
    {
      $this->a = $a;
    }
    
    public function getSquare()
    {
      return $this->a * $this->a;
    }
    
    public function getPerimeter()
    {
      return 4 * $this->a;
    }
  }
?>

Comment cela fonctionne : si l'on oublie d'implémenter une méthode décrite dans l'interface, PHP nous affichera une erreur fatale. Implémentons également la classe Rectangle :

Rectangle.php<?php
  class Rectangle implements Figure
  {
    private $a;
    private $b;
    
    public function __construct($a, $b)
    {
      $this->a = $a;
      $this->b = $b;
    }
    
    public function getSquare()
    {
      return $this->a * $this->b;
    }
    
    public function getPerimeter()
    {
      return 2 * ($this->a + $this->b);
    }
  }
?>
Задание 1

Créez la classe Disk, implémentant l'interface Figure.