Front Controller - MVC en PHP5 by sahid - sahid(at)funraill(dot)co add there is 2 year(s)
  1. <?php
  2. // Modele de Conception MVC, PHP5
  3. // Ferdjaoui Sahid (sahid@funraill.org)
  4. // WWW http://sahid@funraill.org
  5. //
  6.  
  7. // MVC
  8. interface Module {
  9.         public function execModule (HttpRequest $request);
  10. }
  11.  
  12. // Requete
  13. class HttpRequest {
  14.         private $_request;
  15.        
  16.         public function __construct () {
  17.                 $this->_request = array ();
  18.                 $this->_request = array_merge ($_POST, $_GET);   
  19.         }
  20.         public function getParam ($key) {
  21.                 return $this->_request[$key];
  22.         }
  23. }
  24.  
  25. // FC
  26. interface FrontController {
  27.         public function loadModule (HttpRequest $request);
  28. }
  29.  
  30. class Engine implements FrontController {
  31.         public function loadModule (HttpRequest $request) {
  32.                 // récupération du nom du module à chargé
  33.                 $moduleName = $request->getParam("module");
  34.                 if ($moduleName != '') {
  35.                         // fichier php intégrant le module
  36.                         $fileName = "~/module.{$moduleName}.php"; // pensez au chemin
  37.                         if (!class_exists ($fileName)) {
  38.                                 if (file_exists ($fileName)) {
  39.                                         require_once ($fileName);
  40.                                 } else {
  41.                                         // génération d'une exception
  42.                                         throw new Exception ("Impossible de trouver le module");
  43.                                 }
  44.                         }
  45.                         // instance du module
  46.                         $o = new $moduleName ();
  47.                         // execution du module
  48.                         $o->execModule ($request);
  49.                 } else {
  50.                         throw new Exception ("Le module à executé est invalide");
  51.                 }
  52.         }
  53. }
  54.  
  55. // Module
  56. class SayHelloWolrd implements Module {
  57.         public function execModule (HttpRequest $request) {
  58.                 echo "Hello Wolrd en PHP5 !";
  59.         }
  60. }
Moh
Au niveau du test de if(!class_exists($filename)) utiliser : if(!class_exists($module)) ??
tonino
!!! class SayHelloWolrd => World Au niveau du test de if(!class_exists($filename)) utiliser : if(!class_exists($moduleName)) ;0)