Dans mes recherches OO, j'ai découvert qu'un système PHP (pour vous faire plaisir et ne pas me laisser tenter par le Java iffle nommé Pimple pour l'injection de dépendance.
Il s'utilise comme suit :
Il s'utilise comme suit :
Code PHP :
<?php
class Container extends Pimple
{
public function __construct()
{
$this['user.class'] = 'User';
$this['user.storage.class'] = 'SessionStorage';
$this['user.storage.cookie_name'] = 'SESSION_ID';
$this['user'] = $this->share(function($c){
return new $c['user.class']($c['user.storage']);
});
$this['user.storage'] = $this->share(function($c){
return new $c['user.storage.class']($c['user.storage.cookie_name']);
});
}
}
Et utilisation :
Code PHP :
<?php
$container = new Container();
//Le conteneur reste paramétrable et modifiable au besoin
$container['user.storage.cookie_name'] = 'OTHER_SESSION_ID';
//Récupération du service d'utilisateur
$user = $container['user'];