Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsługa zdarzeń. Rozpoznawanie URLa ...
Forum PHP.pl > Forum > PHP
starach
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.
marcini82
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.
starach
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.
empathon
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.
bronchos
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.