Subversion Repositories Applications.gtt

Compare Revisions

Ignore whitespace Rev 9 → Rev 10

/trunk/classes/aAction.class.php
New file
0,0 → 1,65
<?php
 
abstract class aAction {
private static $resultat = null;
private $suivant = null;
public function getResultat()
{
if (aAction::$resultat == null) {
aAction::$resultat = new Resultat;
} else {
return aAction::$resultat;
}
}
public function getSuivant()
{
return $this->suivant;
}
public function setSuivant($s)
{
if (is_array($s)){
$this->suivant = $s;
} else {
$this->suivant[] = $s;
}
}
public function verifier(Resultat $Resultat)
{
// Nous rassemblons les valeurs du tableau _POST contenat des : dans sous tableau de _POST.
foreach ($_POST as $cle => $val) {
$morceau = array();
if (preg_match('/^(.+):(.+)$/', $cle, $morceau)) {
$_POST[$morceau[1]][] = $morceau[2];
unset($_POST[$cle]);
}
}
}
public function demarrer()
{
$Resultat = $this->getResultat();
$this->executer($Resultat);
if ($this->getSuivant() != null) {
for ($i = 0; $i < count($this->getSuivant()) ; $i++) {
$liste_actions = $this->getSuivant();
if ($liste_actions[$i] instanceof aAction) {
$liste_actions[$i]->demarrer();
} else {
if ($liste_actions[$i] == '__defaut__') {
$methode = 'executer';
} else {
$methode = 'executer'.$liste_actions[$i];
}
$this->$methode($Resultat);
}
}
}
}
 
abstract protected function executer(Resultat $Resultat);
}
?>