• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Routing symfony

Object Storage Arubacloud
0 głosów
478 wizyt
pytanie zadane 13 października 2017 w PHP przez CenterPL Pasjonat (19,070 p.)
Cześć, mam taki problem:

Szef zażyczył sobie "ładny" routing w aplikacji, który wygląda tak:

- domena - strona główna
- domena/cms - zaplecze administracyjne
// do tego miejsce ogólnie sprawa prosta, na pehapersach mi podpowiedzieli żeby kolejność routingu ustawić i jest ok
- domena/{slug} - podstrona
- domena/{type} - lista postów danego typu
- domena/{type}/{slug} - wpis jakiegoś typu
- domena/{type}/{category}/ - wszystkie wpisy z kategorii danego typu
- domena/{type}{category}/{slug} - post z kategorii danego typu
- domena/{type}/{category}/{subcategory} - wszystkie posty z podkategorii kategorii danego typu
- domena/{type}/{category}/{subcategory}/{slug} - post z podkategorii kategorii danego typu

Byłbym wdzięczny jakby ktoś obeznany powiedział czy się da jakoś to zrobić, żeby wildcardy ze sobą się nie gryzły. Mógłbym to zrobić w jednej akcji i ifować... bo tak chciano żeby zrobić, ale chyba nie trzeba mówić, że to głupie rozwiązanie i wolę to zrobić lepiej. Problem głównie rodzi się przez to, że za pomocą {slug} pobieram sobie od razu post, a {type} jakiś typ postu, tak jak tu:

https://gist.github.com/webkonstruktor/73e42796b5bd13421de45684d30b0338

No i właśnie skąd sf ma wiedzieć czy ktoś podaje slug czy type. Najlepiej by było gdy nie znajdzie w type to żeby szukał w slug, ale da rade?

2 odpowiedzi

+1 głos
odpowiedź 13 października 2017 przez Ehlert Ekspert (212,670 p.)

Trochę zagmatwane, ale ogólnie widzę zakres problemu. Nie napisałeś o tym jak wyglądają parametry w routeach. Wykorzystaj w definicjach requirements, albo najlepiej paramConvert. 

komentarz 13 października 2017 przez CenterPL Pasjonat (19,070 p.)
w linku jest jak to wszystko wygląda. Zaraz po napisaniu posta przypomniałem sobie o requirements i na razie to starcza. Potem się okaże.
komentarz 13 października 2017 przez Ehlert Ekspert (212,670 p.)
Mimo wszystko mocno polecam Ci paramConvert. Unikasz replikacji kodu i jawnych odwołań do EntityManagera. Wygodne i czytelne.
komentarz 13 października 2017 przez efiku Szeryf (75,160 p.)
Zdefiniuj routing do kontrolera cms to powinien mieć pierwszeństwo.

W dokumentacji nie ma o tym ?:)
komentarz 13 października 2017 przez CenterPL Pasjonat (19,070 p.)
Ale nie to jest problemem efik, przeczytaj dobrzr, że to mam ogarnięte. Kłóci się wildard {type} i {slug}, bo są na tej samej pozycji. Na razie to rozwiązałem za pomocą requirements dla {type} ale co w przypadku, gdybym nie mogl statycznie zadeklarować czego tam oczekuję.
+1 głos
odpowiedź 13 października 2017 przez Boshi VIP (100,240 p.)
Definiuj routing w yml to bedziesz mógł określić pierwszeństwo.

Podobne pytania

0 głosów
1 odpowiedź 861 wizyt
pytanie zadane 19 listopada 2017 w PHP przez michalak Nowicjusz (120 p.)
0 głosów
1 odpowiedź 253 wizyt
pytanie zadane 12 marca 2017 w PHP przez niezalogowany
0 głosów
0 odpowiedzi 218 wizyt
pytanie zadane 24 grudnia 2015 w PHP przez Silverwind Użytkownik (730 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...