Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Interpretacja adresu otrzymanego od przegladarki
olechafm
post 27.11.2011, 13:56:17
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?
Go to the top of the page
+Quote Post
aachi
post 28.11.2011, 14:09:41
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
Go to the top of the page
+Quote Post
by_ikar
post 28.11.2011, 18:31:51
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 wink.gif
Go to the top of the page
+Quote Post
olechafm
post 29.11.2011, 00:29:29
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ę
Go to the top of the page
+Quote Post
by_ikar
post 29.11.2011, 08:39:07
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(olechafm @ 29.11.2011, 00:29:29 ) *
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 wink.gif Napisałem powiedzmy swojego FW którego poskładałem z różnych inncyh frameworków, wyciągając z nich to co mi się w nich najbardziej podobało. W symfony najbardziej spodobał mi się routing i yaml. W zendzie podobała mi się całkiem klasa zend_select, ale część rzeczy jakie tam była zawarta nie podobała mi się wcale. W Yii podobała mi się klasa odpowiedzialna za konfigurację, a dokładniej to sposób poruszania się po konfiguracji. Podobny zresztą był w Kohanie 2, z tym że tam było to mniej wydajnie rozwiązane. Do całości dokładasz jeszcze kilka rzeczy, i masz już swojego FW. Wzorować się jest dobrze, podczas pisania tego rozwiązania w swój sposób dochodzisz jak to działa i później całość znasz na wylot.

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ć wink.gif
Go to the top of the page
+Quote Post
olechafm
post 29.11.2011, 10:25:53
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 smile.gif
Go to the top of the page
+Quote Post
by_ikar
post 29.11.2011, 11:04:24
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 wink.gif

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 wink.gif

Ten post edytował by_ikar 29.11.2011, 11:05:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:04