![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 125 Pomógł: 2 Dołączył: 8.10.2010 Skąd: Poniemieckie miasto przesiedleńców Ostrzeżenie: (0%) ![]() ![]() |
adres.pl/modul/kontroler/akcja/parametr1/parametr2/parametr3
przy analizie adresu sprawdzam ile dana akcja (metoda) wymaga parametrów, gdy adres będzie zawierał zbyt małą ich ilość, rzucam błędem co w przypadku gdy dostanę zbyt dużą ilość parametrów? powinienem akceptować tylko dokładnie taką ich ilość jaką wymaga metoda czy mogę zinterpretować tyle ile jest wymaganych a resztę zostawić? co w przypadku parametrów opcjonalnych? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 12 Dołączył: 4.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ja osobiście nie przejmuję się nadmiarem danych i parametry które nie są mi potrzebne po prostu ignoruje. Tak chyba lepiej, bo właśnie czasami możesz potrzebować parametrów "opcjonalnych".
Ten post edytował aachi 28.11.2011, 14:56:38 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak dla mnie ten adres powinien przyjmować określone wartości, tj nie powinien przyjmować jakichś dodatkowych parametrów które ktoś sobie może wpisać. Zamiast tworzyć jakiś swój system routingu, podpatrz jak to jest zrobione w frameworkach, chociażby takim symfony, gdzie twój zdefiniowany routing zostaje przerobiony na wyrażenie regularne, które następnie jest dopasowywane do adresu, i jeżeli adres jest dłuższy, krótszy, lub parametry są nieodpowiednie (można zdefiniować na poziomie routingu wyrażeniem regularnym jakie dane chcesz otrzymać, przykładowo same cyfry 0-9+ lub \d+) i jak ktoś poda jakikolwiek inny znak, na który ty nie pozwalasz, to wyrażenie nie zostanie dopasowane i możesz rzucić wyjątek, który obsłużysz jako 404.
Sam tak zrobiłem z routingiem symfony z czego w sumie jestem zadwolony, bo jest to chyba najlepszy system routingu jaki został dla frameworków wymyślony ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 125 Pomógł: 2 Dołączył: 8.10.2010 Skąd: Poniemieckie miasto przesiedleńców Ostrzeżenie: (0%) ![]() ![]() |
oczywiście rozumiem, że lepiej korzystać ze sprawdzonych rozwiązań, pomijając fakt że jedne sprawdzają się lepiej inne gorzej i zależy to od potrzeby danej sytuacji co komu pasuje i uważa za "dobre"
ale napisanie własnego routingu jak i wszystkich innych elementów aplikacji to najlepszy sposób na praktyczną naukę, jak już będę wiedział co z czym się je i jak co powinno działać bo napisałem to sam i nauczyłem się na przykładach praktycznych, to wtedy mogę sobie pozwolić na oszczędzanie czasu poprzez używanie takich gotowych rozwiązań jak chociażby framewor'ów, które właśnie temu powinny służyć uważam, że nie powinno od razu sięgać się po gotowce bo to maskuje tylko niewiedzę |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
oczywiście rozumiem, że lepiej korzystać ze sprawdzonych rozwiązań, pomijając fakt że jedne sprawdzają się lepiej inne gorzej i zależy to od potrzeby danej sytuacji co komu pasuje i uważa za "dobre" ale napisanie własnego routingu jak i wszystkich innych elementów aplikacji to najlepszy sposób na praktyczną naukę, jak już będę wiedział co z czym się je i jak co powinno działać bo napisałem to sam i nauczyłem się na przykładach praktycznych, to wtedy mogę sobie pozwolić na oszczędzanie czasu poprzez używanie takich gotowych rozwiązań jak chociażby framewor'ów, które właśnie temu powinny służyć uważam, że nie powinno od razu sięgać się po gotowce bo to maskuje tylko niewiedzę Routing z symfony jest dość mocno z samym symfony powiązany i żeby to jako tako chodziło i miało sens, trzeba to rozłożyć na czynniki pierwsze, wyciągnąć najważniejsze metody i przełożyć do swojej klasy. W symfony dla routingu są dodatkowe opcje, które raczej przeważnie nie są potrzebne, jak chociażby możliwość zdefiniowania dodatkowej klasy routingu już na poziomie samego routingu. Np klasę która będzie rozpoznawać na jakiej jesteś subdomenie, jeżeli masz ustawiony wildcard dla strony. Przeważnie taka funkcjonalność nie jest potrzebna, ja osobiście się jej pozbyłem ![]() Serio popatrz na routing symfony, może i ci przypadnie do gustu, jak coś to nawet będę mógł ci pomóc, jeżeli czegoś w nim nie będziesz rozumieć ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 125 Pomógł: 2 Dołączył: 8.10.2010 Skąd: Poniemieckie miasto przesiedleńców Ostrzeżenie: (0%) ![]() ![]() |
Z góry dzięki, przyjrzę mu się dokładnie
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak już się przyjrzysz, tutaj masz kilka linków z których kiedyś skorzystałem jak byłem na etapie analizowania tego routingu:
- http://pookey.co.uk/wordpress/archives/80-...without-symfony - http://bedger.pl/99,sposoby-wplywania-na-s...-w-symfony.html i mały bonusik, bo może i tobie yaml się spodoba, a jego implementacja jest banalna, a konfiguracja aplikacji jest prosta i czytelna: http://pookey.co.uk/wordpress/archives/81-...fun-with-sfyaml Z tych kilku klas routingu które są w symfony, u mnie powstała jedna która razem z komentarzami ma prawie 300 linii, to tyle co nic, a korzyści płynące z takiego routingu są ogromne ![]() PS. oczywiście ja routing zbudowałem na bazie routingu z symfony 1.4 ten routing w symfony 2 jakoś mi nie przypadł do gustu ![]() Ten post edytował by_ikar 29.11.2011, 11:05:17 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 15:04 |