Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obsługa zdarzeń. Rozpoznawanie URLa ..., ... gdzie najlepiej umieścić.
starach
post 22.03.2007, 11:12:08
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Witam.
Zastanawiam się gdzie powinienem umieścić w skrypcie rozpoznawanie zmiennych przekazanych do skryptu.
Dla dokładniejszego wyjaśnienia o co chodzi posłużę się przykładem.
www.domena.pl/kontakt/
www.domena.pl/kontakt/wyslij_email/
Kiedy klikamy na pierwszy link widzimy stronę z informacjami o kontakcie.
Drugi to link z właściwości action - formularza wysyłającego list.
Teraz się zastanawiam po prostu gdzie mam wydzielić rozpoznawanie tych linków.
( Podałem linki w uproszczonej formie - mod_rewrite )
Jeśli wszystkie linki były wydzielone do jednego modułu który zajmował się uruchamianiem akcji - metod klas;
kiedy musiałem coś zmienić trudno było mi cokolwiek znaleźć. Natomiast nie za bardzo mi się podoba perspektywa rozrzucania kodu tego samego typu po różnych klasa.
Czy było by na przykład W klasie kontakt rozpoznawanie działań przeznaczonych dla tej klasy.
Wiem że to w sumie strasznie pierdułkowaty problem, ale chciałbym się dowiedzieć jak jest lepiej zrobić.
Walnąć rozpoznawanie linków do oddzielnego pliku/klassy czy zrobić tylko bardzo ogólny starter a resztę na przykład czy wysłać email umieścić w klasie Kontakt ?
Pozdrawiam.
Go to the top of the page
+Quote Post
marcini82
post 22.03.2007, 11:28:53
Post #2





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Mozesz to sobie umiescic w index.php, ktory to bedzie odczytywal parametry z URL i na tej podstawie uruchamial odpowiednia klase, metode i podawal parametry dla tej metody.
Wg schematu:
Kod
http://twoja_aplikacja/modul/akcja/parametr1/parametr2

  1. <?php
  2. class Modul{
  3.  
  4. public function akcja($parametr1, $parametr2){
  5.  
  6. }
  7.  
  8. }
  9. ?>

Poza tym zobacz sobie dokumentacje do CodeIgniter.
Go to the top of the page
+Quote Post
starach
post 22.03.2007, 11:52:10
Post #3





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Rozwiązanie dobre w przypadku małych projektów problem w tym że teraz chcę to zastosować do molocha i w przypadku takich projektów zazwyczaj jest to mniej więcej 500 linii kodu.
Go to the top of the page
+Quote Post
empathon
post 22.03.2007, 12:39:38
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

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


Nie ma nigdy jednej jednie słusznej metody. Jednak zazwyczaj rozwiązuje się to budując klasę router która prasuje, validuje url'e i zgodnie z podana reguła zwraca do front controlera akcje jaka ma odpalić oraz dodatkowe parametry.

500 linii kodu?
Co Ty chcesz wrzucić do tej akcji ?
Powtarzalne elementy można includować np. z widoku i zapisać je jako komponenty.
Ja od siebie polecę gotowe rozwiązanie w postaci frameworka Symfony w którym od jakiegoś czasu jestem zakochany winksmiley.jpg Jeśli jednak stawiasz na swoje rozwiązania tu masz opisane jak powinno to wyglądać by logicznie i przejrzyście zorganizować aplikacje smile.gif
Jak napisać prosty router opisał Strzałek na swoim blogu.


--------------------
Goldenline: Łukasz Rodziewicz
Go to the top of the page
+Quote Post
bronchos
post 23.03.2007, 16:00:25
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.03.2007

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


Ja osobiście umieściłbym to w przeznaczonych do obsługi danych zarzeń plikach, tzn:

np. w pliku obsługującym stronę główną rozpoznawanie /kontakt/, /galeria/, etc.
A poźniej w pliku obsługującym kontakt rozpoznawanie: /wyslij/ (/kontakt/wyslij/), /wyswietl/ (/kontakt/wyswietl/), etc.

Wydaje mi się, że to będzie dość rozsądne rozwiązanie.
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: 5.07.2025 - 04:34