Takich przykładów jest pełno w necie, wystarczy wpisać w wyszukiwarkę php router. A to, czy będziesz korzystać z friendly url to już sprawa drugorzędna, chociaż nie widzę sensu, aby tego nie używać.
Generalnie, jeśli chcesz stworzyć dynamiczny routing (bo pewnie o takim myślisz), czyli bez trzymania dostępnych routów w konfiguracji, to masz dwie opcje:
- regexy: szybko i elegancko, no ale... to regexy. Czyli sprawdzasz, czy query string pasuje do danego wzorca, jeśli tak, to ustalasz na jego podstawie kontroler i akcję, np.:
// tutaj akurat przykład z RESTowym URI /{controller}/{id}, ale chodzi mi o samą ideę
if (preg_match('#^(?P<controller>[a-z-]+)/(?P<id>[0-9]+)$#', $query, $matches)) {
$controller = $matches['controller'];
$id = $matches['id'];
}
- rozbijasz query stringa na tablicę i badasz każdy element: nie chce mi się o tym pisać, bo ten sposób jest wykorzystywany chyba w większości tutoriali dotyczących MVC
Rozumiem, że chcesz się uczyć i takie tam, ale o ile nie jesteś specem od pehapa, to lepiej użyj istniejącego routera (chociażby FastRoute), zamiast pisać własny routing, bo pewnie wyjdzie z tego (bez urazy) zwykły crap, jakich pełno.