Rev 10 | Rev 37 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpabstract class aControlleurAction {private $suivant;public function getRegistre(){return Registre::getRegistre();}// Suivantpublic function getSuivant(){return $this->suivant;}public function setSuivant($s){if (is_array($s)){$this->suivant = $s;} else {$this->suivant[] = $s;}}public function demarrer(){if (!is_null($this->getSuivant())) {// ATTENTION :// Il est important de laisser "count($this->getSuivant())" $this->getSuivant() peut varier de taillefor ($i = 0; $i < count($this->getSuivant()) ; $i++) {$liste_actions = $this->getSuivant();if ($liste_actions[$i] instanceof aControlleurAction) {$liste_actions[$i]->demarrer();} else {if ($liste_actions[$i] == '__defaut__') {$methode = 'executer';} else {$methode = 'executer'.$liste_actions[$i];}if (method_exists($this, $methode)) {$this->$methode();} else {$m = "La méthode $methode de la classe ".get_class($this)." est introuvable!";trigger_error($m, E_USER_ERROR);}}}} else {$m = "Le registre ne contient aucune action!";trigger_error($m, E_USER_ERROR);}}public function verifier(){// Nous rassemblons les valeurs du tableau _POST contenant des : dans des sous-tableau de _POST.foreach ($_POST as $cle => $val) {$morceau = array();if (preg_match('/^(.+?)(:.+)+$/', $cle, $morceau)) {$table = '';foreach (explode(':', trim($morceau[2], ':')) as $c) {$table .= '['.$c.']';}eval('$_POST[$morceau[1]]'.$table.' = $val;');unset($_POST[$cle]);}}}abstract protected function executer();}?>