<?php ... ... ?>
Jednak w przypadku, gdy sytuacja wymusza na nas zmianę struktury linka na np. materialy/tytul-10/, trzeba będzie dokonywać zmian w wielu miejscach. Im większa strona, tym więcej roboty.
Dlatego wziąłem się za pisanie klasy, która może pomóc rozwiązać ten problem. Uruchamia się ją w ten sposób:
<?php ... ... ?>
m - nazwa kontolera
id - informuje, jaki materiał załadować
title - zmienna wyłącznie do pozycjonowania
Klasa wygląda tak:
<?php class Seo{ if($parts[0] == 'm'){ $method = $parts[1]; } else{ $vars[$parts[0]] = $parts[1]; } } if(method_exists('Seo', $method)){ return self::info($vars); } else{ return $link_to_convert; } } if($vars['id'] && $vars['title']){ $link = '/strona/'.$vars['title'].'-'.$vars['id'].'/'; } else{ $link = '/'; } return $link; } } ?>
Każdy link w tworzonym przeze mnie Frameworku będzie mieć strukturę index.php?m=MODUŁ + [cała reszta zmiennych związana z modułem].
Dlatego na początku w metodzie "link" ze zmiennej $link kasowany jest ciąg "index.php?". Następnie cała reszta dzielona jest na zmienne, z czego zmienna $m jest szczególna, bo informuje, jaką metodę ma uruchomić - o ile istnieje.
Następnie metoda ta jest uruchamiana i generuje ładny link - o ile to metody trafią porządane zmienne.
Na razie jest tylko jedna metoda "info", ale w przyszłości dojdą kolejne.
Co sądzicie o takim rozwiązaniu?