public function run() { error_reporting(Config::get('app.debug') ? E_ALL : 0); //Set Date Timezone date_default_timezone_set(Config::get('app.timezone')); //Set Cache Ctatus ini_set('opcache.revalidate_freq', Config::get('app.cache') ? '0' : '1'); try { static::stripTraillingSlash(); $this->session->start(); Router::init(); $routerParams = Router::getParams(); $this->handleMiddlewares($routerParams); $controllerParams = []; foreach ($routerParams as $paramName => $paramValue) { if (substr($paramName, 0, 1) != '_') { $controllerParams[$paramName] = $paramValue; } } if (isset($routerParams['_params']) && is_array($routerParams['_params'])) { foreach ($routerParams['_params'] as $paramName => $paramValue) { $controllerParams[$paramName] = $paramValue; } } $controllerFullName = '\\App\\Controllers\\' . $routerParams['_controller']; try { return $this->di->call($controllerFullName . '::' . $routerParams['_method'], $controllerParams); } catch (Exception $e) { new ExceptionHandler($e); } } catch (Exception $e) { new ExceptionHandler($e); } return true; }