<?php abstract class Module { /** * Liste des paramètres du module en concordance avec le "config.xml" * Ses éléments ne peuvent être modifiés * @var array */ protected static $paramsList = array(); // Nom du module (aka le nom de la classe en minuscule) protected $moduleName; // Libellé du module (aka le nom affiché) protected $moduleTitle; // Le chemin vers le module protected $pathToModule; /** * Liste des paramètres et leurs valeurs de l'object * * @var array */ public $params = array(); private function setParams($params){ $this->params = $params; } abstract static function start($params); public static function updateConfig($updated){ foreach ($updated as $what=>$withWhat){ if(in_array($what, self::$paramsList)){ call_user_func(array(get_class(), "set".ucfirst($what)), $withWhat); } } } }