18 self::startTemplateEngine($config);
19 if (isset($config[
"sessionName"]))
25 $u=self::parseUrl($url);
33 $u[0]=self::$ctrlNS . $u[0];
34 if (\class_exists($u[0])) {
37 \header(
'HTTP/1.0 404 Not Found',
true, 404);
38 print
"Le contrôleur `" . $u[0] .
"` n'existe pas <br/>";
43 public static function getNS($part=
"controllers") {
46 if ($ns !==
"" && $ns !== null) {
53 self::$ctrlNS=self::getNS();
61 $url=\substr($url, 0, strlen($url) - 1);
62 self::$urlParts=\explode(
"/", $url);
64 return self::$urlParts;
69 $engineOptions=array (
'cache' => ROOT . DS .
"views/cache/" );
70 if (isset(
$config[
"templateEngine"])) {
71 $templateEngine=
$config[
"templateEngine"];
72 if (isset(
$config[
"templateEngineOptions"])) {
73 $engineOptions=
$config[
"templateEngineOptions"];
75 $engine=
new $templateEngine($engineOptions);
77 self::$config[
"templateEngine"]=$engine;
80 }
catch ( \Exception $e ) {
81 echo $e->getTraceAsString();
85 public static function runAction($u, $initialize=
true, $finalize=
true) {
88 self::$controller=$ctrl;
89 self::$action=
"index";
95 print
"`{$u[0]}` n'est pas une instance de contrôleur.`<br/>";
99 if (\array_key_exists(
"di",
$config)) {
101 if (\is_array($di)) {
102 foreach ( $di as $k => $v ) {
115 public static function runAsString($u, $initialize=
true, $finalize=
true) {
117 self::runAction($u, $initialize, $finalize);
118 return \ob_get_clean();
125 $controller->
index();
130 if (\method_exists($controller,
$action)) {
131 $controller->$action();
133 print
"La méthode `{$action}` n'existe pas sur le contrôleur `" . $u[0] .
"`<br/>";
138 \call_user_func_array(array ($controller,$u[1] ), array_slice($u, 2));
144 return self::$config;
152 foreach ( $needs as $need ) {
162 $needs=[
"type",
"dbName",
"serverName" ];
163 if (!isset(
$config[
"database"])) {
164 $result[]=
"database";
166 self::needsKeyInConfigArray($result,
$config[
"database"], $needs);
174 if (!isset(
$config[
"mvcNS"])) {
177 self::needsKeyInConfigArray($result,
$config[
"mvcNS"], [
"models" ]);
183 return self::$config[
"mvcNS"][
"models"];
187 return ROOT . DS . self::getModelsDir();
190 public static function errorHandler($message=
"", $code=0, $severity=1, $filename=null,
int $lineno=0, $previous=NULL) {
191 if (\error_reporting() == 0) {
194 if (\error_reporting() & $severity) {
195 throw new \ErrorException($message, 0, $severity, $filename, $lineno, $previous);
200 return self::$controller;
204 return self::$action;
208 return \dirname(__FILE__);
static getModelsCompletePath()
static runAsString($u, $initialize=true, $finalize=true)
static run(array &$config, $url)
static setConfig($config)
static getNS($part="controllers")
Base class for controllers.
static getRoute($path, $cachedResponse=true)
static callController(Controller $controller, $u)
static runAction($u, $initialize=true, $finalize=true)
static needsKeyInConfigArray(&$result, $array, $needs)
static start($name=null)
Start new or resume existing session.
static getApplicationDir()
This file is part of Ubiquity framework.
static endswith($hay, $needle)
static startTemplateEngine($config)
static checkModelsConfig()
static errorHandler($message="", $code=0, $severity=1, $filename=null, int $lineno=0, $previous=NULL)