PHP: capire la mappatura degli URL nel pattern MVC

PHP: capire la mappatura degli URL nel pattern MVC

La mappatura degli URL è una caratteristica fondamentale del pattern MVC in PHP.

Per comprendere le basi della mappatura degli URL nel design pattern MVC occorre capire che ciascuna parte di un URL corrisponde ad uno specifico metodo o argomento di un metodo di una classe di tipo Controller.

Quindi dato il seguente URL:


/posts/edit/9

Avremo il controller Posts che avrà il metodo Posts::edit($id) il quale accetta come parametro l'ID del post che si vuole modificare.

La mappatura di norma avviene separando le parti dell'URL usando il valore di $_SERVER['REQUEST_URI'] dato che in MVC tutte le richieste vengono reindirizzate sul file index.php ad eccezione dei file e delle directory già esistenti.

A quel punto il router, ossia il componente deputato alla mappatura degli URL, carica il controller cercando nello scope la classe con lo stesso nome e infine associa i metodi e gli argomenti dei metodi del Controller alle successive parti dell'URL procedendo da sinistra verso destra.

Un caso particolare (ibrido) di questo schema è dato da WordPress che effettua una conversione prima del routing finale con la classe WP_Rewrite trasformando URL come /?p=9 nella versione SEO-friendly /titolo-post.

Torna su