\Core\Event::fire("Page_PreLoad", $_REQUEST); // Test security access // redirect to defaultService if not allow try { \Core\Security::serviceAuthorized($s, $r); } catch (\Core\CException $exception) { \Core\Server::sendHeaderStatus(500); \Core\Event::fire("Page_AccessDeny", $_REQUEST, $exception); die($exception->getMessage()); } try { // Test if session dir ok $sessionPath = session_save_path(); if (!empty($sessionPath)) { if (!is_dir($sessionPath) || !is_writable($sessionPath)) { throw new \Core\CException("Server error : Php session directory \"" . $sessionPath . "\n (" . \Core\Server::perms($sessionPath) . ")\" is not writable."); } } // Test signature du controller if (class_exists($s) && method_exists($s, $r)) { $refl = new ReflectionClass($s); $parameters = $refl->getMethod($r)->getParameters(); if (count($parameters) > 0) { // Test if function parameter is Core\Request $p = new ReflectionParameter(array($s, $r), 0); $c = $p->getClass(); // Autorise l'execution des services avec le premier paramètre default null if ($p->isDefaultValueAvailable() && $p->getDefaultValue() === null) { // Raf } elseif ($c === null) { // Block les services sans paramètre