2019-12-04 15:21:19 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace MVC\Classe;
|
|
|
|
|
|
|
|
class ControlleurAction
|
|
|
|
{
|
|
|
|
public static function inserer($action, $data = array())
|
|
|
|
{
|
2021-02-23 15:28:23 +01:00
|
|
|
//on extrait la classe d'appel de l'action
|
2019-12-04 15:21:19 +01:00
|
|
|
$action = explode('.', $action);
|
|
|
|
$class = ucfirst($action[0]) . "Action";
|
2021-02-23 15:28:23 +01:00
|
|
|
//TODO: use try ... catch with \MVC\Classe\Logger to log error
|
2019-12-04 15:21:19 +01:00
|
|
|
if (is_file(ACTION_PATH . DIRECTORY_SEPARATOR . $class . ".php")) {
|
|
|
|
require_once ACTION_PATH . DIRECTORY_SEPARATOR . $class . ".php";
|
2021-02-23 15:28:23 +01:00
|
|
|
//On charge la classe Action de façon réflextive
|
2019-12-04 15:21:19 +01:00
|
|
|
$slot = new $class();
|
2021-02-23 15:28:23 +01:00
|
|
|
//si l'action passé en parametre est fournit avec une methode pointée on charge celle demandée sinon on charge celle par defaut
|
2019-12-04 15:21:19 +01:00
|
|
|
if (isset($action[1])) {
|
|
|
|
$method = $action[1];
|
2021-02-23 15:28:23 +01:00
|
|
|
//On appel la méthode de la classe action de manière reflextive
|
2021-01-11 15:10:03 +01:00
|
|
|
return $slot->$method(...$data);
|
2019-12-04 15:21:19 +01:00
|
|
|
} else {
|
2021-02-23 15:28:23 +01:00
|
|
|
return $slot->default(...$data);
|
2019-12-04 15:21:19 +01:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
/*HandleError*/
|
|
|
|
}
|
|
|
|
}
|
2020-12-09 10:26:26 +01:00
|
|
|
}
|