1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| if( ! class_exists( 'Front_Controller' ) )
{
final class Front_Controller
{
private static $o_Instance = NULL;
private $h_Filters = array();
private $o_Strategy = NULL;
private function __construct()
{
$this->RegisterFilter( new Front_Controller_Output );
}
private function RegisterFilter( & $o_Filter )
{
$this->h_Filters[] = & $o_Filter;
}
public static function GetInstance()
{
if( ! self::$o_Instance instanceof self )
self::$o_Instance = new self;
return self::$o_Instance;
}
public function Execute()
{
foreach( $this->h_Filters as $o_Filter )
{
$o_Filter->PreProcess();
}
// $this->o_Strategy->Execute() :
echo "bonjour";
foreach( array_reverse( $this->h_Filters ) as $o_Filter )
{
$o_Filter->PostProcess();
}
}
}
} |
Partager