IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

routerREST.php

Jednoduchý router REST v PHP

php

<?php
function __autoload($class) {
    include(strtr($class, "_\\", "//").'.php');
}

function restFactory($method, $request) {
    // restrikce povolených metod HTTP
    $methods = array('PUT', 'POST', 'GET', 'HEAD', 'DELETE', 'OPTIONS');

    // restrikce povolených objektů, se kterými uživatel smí pracovat
    $objects = array('user', 'game', 'message');

    // Přechozí dva seznamy by se správně měly nacházet v modelu aplikace, aby router byl nezávislý.

    // vygeneruji název třídy, např. "user\Get" pro zobrazení uživatele
    $className = $request[1] . "\\" . ucfirst(strtolower($method));

    // ošetření vstupu
    if (in_array($method, $methods) && in_array($request[1], $objects)) {
        return new $className(array_slice($request, 2));
    }

    // ostatní vstupy zamítnu
    throw new Exception('Not Implemented', 501);
}

try {

    // restFactory předám HTTP metodu a objekt, se kterým chce uživatel pracovat
    $object = restFactory($_SERVER['REQUEST_METHOD'], explode("/", @$_SERVER['PATH_INFO']));

} catch (Exception $e) {

    // klient poslal chybný požadavek nebo nastala jiná chyba
    $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0');
    header($protocol . ' ' . $e->getCode() . ' ' . $e->getMessage());
    echo $e->getMessage(), "\n";
    exit;
}

// výstup HTML
echo $object;

Neformátovaný

Přidáno: 18.8.2013
Expirace: Neuvedeno

Avatar
Autor: Kit
Aktivity