2012-12-17 10 views
5

Ho letto l'articolo:richieste REST di routing senza framework?

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

per imparare a costruire un API di riposo. A un certo punto dice "Supponendo di aver instradato la richiesta al controller corretto per gli utenti"

Ho cercato di trovare un tutorial o qualcosa che mostra come farlo, ma tutto ciò che ho letto suggerisce un framework. Come posso fare questo senza un quadro?

EDIT:

Sto scrivendo un'API REST che posso interagire con da una diversa applicazione. Preparo il tutorial sopra, e ha senso soprattutto, ma non capisco esattamente cosa significhi indirizzare la mia richiesta al controller corretto per gli utenti.

+0

Se si desidera eseguire PHP MVC, non è consigliabile utilizzare un framework già esistente. Se insisti a farlo da solo, allora devi definire ulteriormente cosa stai cercando di fare esattamente, come adesso, questo non è responsabile nella sua forma attuale. Stai chiedendo come scrivere qualcosa che accetta una richiesta HTTP ... un vero e proprio nuovo framework MVC ..? – thatidiotguy

risposta

3

Supponendo che si stia utilizzando Apache, è possibile farlo facilmente utilizzando una combinazione di mod_rewrite e alcune logiche basate su PHP. Ad esempio, nel vostro .htaccess o definizione vhost, è possibile percorso tutte le richieste tramite un singolo gestore, possibilmente index.php:

# Don't rewrite requests for e.g. assets 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*+)$ index.php?q=$1 [L] 

... poi nel file index.php fare qualcosa di simile:

$target = $_REQUEST['q']; 
/* parse the request and include the appropriate controller PHP */ 

Ad esempio, una richiesta per /products/1234 potrebbe comportare l'inclusione di un gestore controllers/products.php. Questo gestore potrebbe quindi agire sul prodotto 1234. Poiché stai utilizzando REST, non dovresti preoccuparti della richiesta originale con un parametro stringa di query.

Ci sono diversi modi per ottenere ciò che sembra si stia tentando di fare, questo è solo uno di questi. In ultima analisi, ciò che si dipenderà dipenderà dalle esigenze specifiche dell'utente. Lo schema sopra è abbastanza comune tuttavia, molti framework lo usano o qualcosa del genere.

Cheers

+0

Ho intenzione di fare un tentativo .. non ho molta esperienza con l'editing .htaccess ma cercherò di leggerlo su di esso –

+0

Grande. Se ritieni di aver risposto alla tua domanda, considera di accettarla. http://stackoverflow.com/faq#howtoask – Madbreaks

+0

Lo farò, di solito attendo fino a quando non capisco il problema –

0

Penso che sia una questione di terminologia. Ogni codice con un certo livello di generalizzazione può essere chiamato "quadro". E poiché stai chiedendo di "routing", che fornisce un livello iniziale di generalizzazione, ogni implementazione diventa un framework.

Se non si desidera utilizzare strutture esistenti a tutti gli effetti, è possibile elaborare la propria implementazione leggera. Ecco alcuni articoli per iniziare:

Tutte queste introduzioni sono spiegazioni del mechanizm di routing e dimostrano la sua attuazione.

Fondamentalmente, un router è un tipo di "DNS" interno (in senso figurato) all'interno dell'applicazione. Quando una richiesta arriva al tuo sito, devi inviarla alla classe appropriata del lavoratore, in base alle proprietà della richiesta. Questo è il compito del router.

+0

Credo che la domanda dell'opuscolo sia piuttosto specifica: come indirizzare le richieste a un controller appropriato ... * non * come implementare un framework MVC. – Madbreaks

+0

Tutti i documenti relativi agli MVC self-made descrivono molto bene l'aspetto del routing. – Stan

+0

Secondo link non valido – Goose