Exemple

Maintenant ; vous avez en main tous les clés pour comprendre le détail de ma classe d’exemple.

class Stylo {

  static private $niveau_encre_max = 100;
  static private $niveau_encre_min = 25;

  private $niveau_encre;
  protected $couleur_normale = '#000000';
  protected $couleur_fin = '#C0C0C0';
  public $statut;

  private function peutEcrire() {
    if (!$this->statut) {
      $result = false;
    } elseif ($this->niveau_encre<=0) {
      $result = false;
    } else {
      $result = true;
    }
    return $result;
  }

  public function __construct() {
    $this->statut = false;
    $this->niveau_encre = self::$niveau_encre_max;
  }

  public function click() {
    if ($this->statut) {
      $this->statut = false;
    } else {
      $this->statut = true;
    }
  }
 
  public function ecrire($texte) {
    if ($this->peutEcrire()) {
      echo '<p style="color:'.$this->couleur_normale.'">';
      $nb_caracteres = strlen($texte);
      $texte = htmlentities($texte);
      $texte = str_split($texte);
      $i = 0;
      while($this->peutEcrire() && $i<=$nb_caracteres) {
        if ($this->niveau_encre==self::$niveau_encre_min) {
          $format = '<span style="color:'.$this->couleur_fin.'">%s';
        } else {
          $format = "%s";
        }
        printf($format, $texte[$i]);
        $i++;
        $this->niveau_encre --;
      }
      if ($this->niveau_encre<=self::$niveau_encre_min) {
        echo "</span>";
      }
      echo "</p>\n";
    }
  }

}
 
$monBic = new Stylo();
$monBic->ecrire(‘Essayez d\’écrire sans enlever le capuchon…’) ;
$monBic->click() ;
$monBic->ecrire(‘Un premier paragraphe.’) ;
$monBic->ecrire(‘Un second paragraphe qui n\’iras pas jusque au bout car mon stylo va certainement manquer d’encre.’);

$monBic->click() ;

Conclusion

La plupart des développeurs qui ne développent pas encore en POO expliquent souvent que ; pour qu'il leur est plus "naturel" de concevoir et de lire un code procédural.

C’est une fausse excuse. Sur un projet de taille un peu conséquente ; il sera plus facile de manipuler des objets et des entités logique. Ainsi que plus facile à écrire ; et à naviguer au sein de ces entités. Que de se retrouver au milieu d’une foule de procédures ; complexifiant le code ; et très souvent même consommant trop de ressources.

De plus ; l’exemple utilisé dans cet article démontre bien que ; grâce au concept objet ; vous pouvez intégrer absolument tous les cas que vous aurez à traiter. Et ce ; en quelques minutes.