コード例 #1
0
ファイル: index.php プロジェクト: solofo-ralitera/oron
\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