<?php
// Modele de Conception MVC, PHP5
// Ferdjaoui Sahid (sahid@funraill.org)
// WWW http://sahid@funraill.org
//
// MVC
interface Module {
public function execModule (HttpRequest $request);
}
// Requete
class HttpRequest {
private $_request;
public function __construct () {
$this->_request =
array ();
}
public function getParam ($key) {
return $this->_request[$key];
}
}
// FC
interface FrontController {
public function loadModule (HttpRequest $request);
}
class Engine implements FrontController {
public function loadModule (HttpRequest $request) {
// récupération du nom du module à chargé
$moduleName = $request->getParam("module");
if ($moduleName != '') {
// fichier php intégrant le module
$fileName = "~/module.{$moduleName}.php"; // pensez au chemin
require_once ($fileName);
} else {
// génération d'une exception
throw new Exception ("Impossible de trouver le module");
}
}
// instance du module
$o = new $moduleName ();
// execution du module
$o->execModule ($request);
} else {
throw new Exception ("Le module à executé est invalide");
}
}
}
// Module
class SayHelloWolrd implements Module {
public function execModule (HttpRequest $request) {
echo "Hello Wolrd en PHP5 !";
}
}