Routing (era: request_uri)

Stato
Chiusa ad ulteriori risposte.

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Ciao volevo sapere se al posto di passare i valori con $_GET e trasformarli con il mod_rewrite potevo direttamente effettuare un redirect all'uri "pulito" e recuperare i valori dal $_SERVER['REQUEST_URI'].
Ad esempio se devo andare alla pagina con id=12 al posto di fare
PHP:
header('Location: index.php?page=12');
uso
PHP:
header('Location: index.php/page/12');
e al posto di usare $_GET['page'] per recuperare il valore uso $_SERVER['REQUEST_URI'] è la stessa cosa o comporta dei problemi?
Spero si sia capito cosa intendo, non so in che altro modo spiegarlo.
 
In pratica si tratta di creare una classe che a seconda dell'URI include il file di una classe ed esegue un suo metodo?
 
Ok grazie :D
Ma il routing va usato per tutta l'applicazione? Cioè per un aventuale pannello di amministrazione è indifferente usare il routing o le query string?

Poi un'altra cosa: potresti farmi un esempio di come potrebbe essere la struttura delle directory di un'applicazione che usa il pattern MVC?
 
Puoi anche usare il routing solo per una parte dell'applicazione. Di solito in un pannello di amministrazione è del tutto indifferente usare il routing oppure le query string, in quanto le pagine non vengono nemmeno indicizzate.

In un'applicazione MVC c'è una directory per i controller, una per i modelli e una per le viste. Un front controller poi si occupa di caricare il controller appropriato in base ai parametri nell'URL. Il controller fa uso dei modelli e delle viste come meglio crede. Spesso le cose però sono infinitamente più complicate, soprattutto nelle applicazioni di grandi dimensioni. Guarda per esempio la standard distribution di Symfony.
 
Perfetto grazie.
Scusa tutte queste domande, ma avrei un altra cosa da chiedere: c'è un modo per utilizzare l'istanza di una classe all'interno di un'altra senza dichiararla globale nel metodo? In pratica c'è un modo per utilizzare le istanze senza doversi sempre preoccupare di includere il file della classe?
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili