PHP routing snippet

Sviluppare il routing in PHP

Se sei uno sviluppatore web, prima o poi ti trovi a dover fare i conti con il routing con tutte le sue sfaccettature. In questo articolo utilizzerò un framework PHP che mi aiuterà in questo scopo, Slim Framework.

Come prima cosa, dobbiamo capire a cosa ci serve realmente il routing. Prendiamo ad esempio un tipico caso d’uso in cui stiamo sviluppando un CMS o una semplice applicazione PHP che richiedere il passaggio di alcuni parametri da una pagina A ad una pagina B.

Per fare questo, si può utilizzare $_GET ma si sa che non è una tecnica molto elegante, soprattutto guardando al SEO. Per risolvere questo problema usiamo le routes che non sono nient’altro che “instradamenti” che ci indirizzano vero una determinata pagina/metodo/risultato.

Prendiamo ad esempio la visualizzazione di un articolo in un CMS nuovo di zecca diciamo che usiamo una cosa tipo:

http://miosito.com/?id_articolo=2195

Questo esempio è chiaramente funzionante, ma se io volessi badare al SEO sarebbe una battaglia persa a prescindere, quindi sarebbe meglio una forma tipo:

http://miosito.com/articolo/nome-articolo

Come si nota, i vantaggi sono molti, soprattutto dal lato umano (ricordo molto più semplicemente nome-articolo). Per fare questo, dobbiamo scaricare ed impostare SlimFramework nel nostro progetto. Lo faremo grazie a Composer, un dependecy manager per PHP.

[bash]composer require slim/slim "^3.0"[/bash]

Fatto questo, nella nostra cartella di progetto dovremmo ritrovarci la cartella /vendor. Per finire con i requisiti, bisogna ancora sistemare un ultima cosa, il file .htaccess. Se non lo avete già fatto, createlo, copiate questo ed incollatelo nel vostro.

[bash]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
[/bash]

Questo consentirà un routing senza bisogno di specificare sempre nell’URL index.php.

I prerequisiti sono finiti, ora si può scrivere del sano codice.

Create il vostro file di index.php ed incollate questo

Una volta finito e fatto l’upload sul server, se vi collegate a questo indirizzo http://miosito.com/articolo/nome-articolo2345, il risultato dovrebbe essere

nome-articolo2345

Se fate una richiesta di tipo POST invece a http://miosito.com/login inviando una variabile identificata con ‘nome’, il risultato è anche qui la il valore della variabile inviata.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *