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
.