Si vous avez suivis tous mes billets sur la POO avec PHP de cette semaine (voir le billet Introduction à la POO avec PHP) ; vous devez maintenant être en mesure d’écrire vos premières classes. De définir vos premiers objets. Bref ; d’entrer dans le monde de la Programmation Orienté Objet.
Aujourd’hui suite et fin de cette série de billet. Aujourd’hui ; cours pratique. Créons notre classe Stylo !
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.
