Retour

Les design patterns en PHP

Publié le :

Les design patterns c'est quoi au fait ?

Les design patterns ou patrons de conception en bon français, sont un ensemble de bonnes pratiques répondant à des problèmatiques de conception de logiciel souvent rencontrées. 

Les type de design patterns.

Les design patterns sont regroupés en trois types distincts qui sont :

  • d'architecture, ce qui améliore la manière de concevoir son programme
  • de conception, ce qui permet d'améliorer la facon de bâtir nles modules entre eux.
  • d'idiotisme, ce qui permet de répondre aux besoins des différents langages de programmation.

Les points forst des design patterns.

Il n'y a que du bon dans les design pattern, pourquoi me direz-vous ?

Tout simplement parce qu'ils forcent les programmeurs à avoir un langage commun. Ils permettent aussi de répondre de façon simple à des problèmes complexes.

 L'histoire (source wikipédia).

Formalisés dans le livre du « Gang of Four » (GoF, Erich GammaRichard HelmRalph Johnson (en) et John Vlissides (en)) intitulé Design Patterns – Elements of Reusable Object-Oriented Software9 en 1995. Les patrons de conception tirent leur origine des travaux de l'architecte Christopher Alexander dans les années 70, dont son livre A Pattern Language définit un ensemble de patrons d'architecture.

Les patrons de conception en PHP.

Je vais maintenant vous montrer les design patterns qui me semblent les plus utilisés en PHP.

Le pattern Factory.

Le pattern factory va permettre à une classe d'instantier pour vous les objects donc vous avez besoin en les passant en arguments.

Voici un exemple concret.


<?php
class VehiculeFactory {
public static function getCar() { 
$vehicule = new Car();
return $vehicule;
}

public static function getBicycle() { $vehicule = new Bicycle(); return $vehicule; } }

maintenant il sera facile de construire votre véhicule.


<?php
try { 
$mysql = DBFactory::getCar();
}catch (RuntimeException $e){
echo $e->getMessage();
}

Le pattern Singleton.

Ce pattern permet d'empêcher la création multiple d'instance d'objet.

Voici comment faire:


<?php
class MonSingleton {
protected static $instance;  
protected function __construct() { }
protected function __clone() { }
public static function getInstance(){ 
if (!isset(self::$instance))
{
self::$instance = new self;
}
return self::$instance;
}
}

Et voici comment appeler tout cela.


<?php
$obj = MonSingleton::getInstance();


Écrit par Franck Lebrun

Retour