![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 7 Dołączył: 6.01.2010 Skąd: Opole Lubelskie Ostrzeżenie: (0%) ![]() ![]() |
Witam,
piszę klasę do routingu PHP, czyli skrypt ma wybrać odpowiedni kontroler i metodę na podstawie przetwarzania adresu URL. Za bardzo nie wiem jak rozwiązać jeden problem. Mam taki wzorzec, z którym porównuję aktualnie przetwarzany link: Kod http://domena.pl/demo/<id> Przy wpisaniu: Kod http://domena.pl/demo/5 Wszystko jest ok. Natomiast nie wiem jak uzupełnić URL domyślnymi wartościami, czyli mając: Kod http://domena.pl/demo/ skrypt powinien stworzyć url np. tak: Kod http://domena.pl/demo/1
Ten post edytował lukasz91 17.04.2014, 13:32:36 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nikt ci nie każe używać całego frameworka, zbór bibliotek to też swego rodzaju framework.. Napisałem ci że nie ma sensu przepisywać, bo sam kiedyś przepisałem, czegoś się tam nauczyłem ale z czasem stwierdziłem że to jest bezsensu..
"kompiler" regułek routingu w symfony podczas budowania regexa rozdziela "zmienne/parametry" domyślnie względem pierwszego separatora i powstaje regexp w którym jakieś parametry mogą być domyślne, co sam regexp to umożliwia. Dla twojego przykładu regexp mógłby wyglądać tak: Kod #/demo(?:/(?=P<id>[\d]+))#s powyższy regex złapie adres /demo jak i /demo/1. Wartości domyślne, które podajesz w regułce routingu są łączone z tablicą wartości dopiero po dopasowaniu odpowiedniej regułki. Sam korzystam z klas routingu symfony, lecz router napisałem inny, aby pisanie regułek było nieco czytelniejsze i mnie to wygląda tak dla twojego przykładu:
Ten post edytował by_ikar 23.04.2014, 22:40:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 10:04 |