SAND-framework/application/class/ControlleurAction.php

31 lines
1.1 KiB
PHP
Raw Normal View History

<?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
$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
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
$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
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
return $slot->$method(...$data);
} else {
2021-02-23 15:28:23 +01:00
return $slot->default(...$data);
}
} else {
/*HandleError*/
}
}
2020-12-09 10:26:26 +01:00
}