![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 0 Dołączył: 18.01.2004 Skąd: rzeszów / kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem ostatnio kontroler żądań, na razie wyłapuje dane GET i POST oraz filtruje dowolnie wybrane klucze lub wszystkie klucze. Zalezy mi raczej na tym zeby ktos spojrzał na to okiem fachowca
![]()
Ten post edytował dyktek 1.06.2006, 14:55:57 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dobrze kombinujesz, ale popełniłeś błędy już na etapie założeń teoretycznych. Pomijam zbyt ogólnikową nazwę klasy - w końcu kontrolerów możesz napisać całą masę, ale przydałoby się w nazwie zazanaczyć przynajmniej co to za kontroler. Wracając do błędów w założeniach. Napisałeś coś co jest mixem klasy odpowiedzialnej za odbiór danych od uzytkownika i wstępną ich walidacją zwykle nazywanej Requestem i dyspozytora - Dispatcher - zajmującego się obsługą żadań, wydarzeń lub akcji (zależy jak się to nazwie).
Dyspozytor, który jak rozumiem był Twoim głównym celem powinien otrzymywać jedynie zmienną która zawiera lub może zawierać żadanie. Następnie powinien sprawdzić czy potrafi obsłużyć to żądanie (zdarzenie lub akcję) i czy użytkownik, który dane żądanie przesłał ma do tego prawo. Jeśli dyspozytor nie znajdzie klasy lub metody odpowiedzialnej za obsługę danego zdarzenia lub stwierdzi tę akcję za nieuprawnioną musi jakoś zareagować np. zgłaszając wyjątek lub wykonująć akcję domyślną i dokonując odpowiedniego wpisu w logu. Warto też się zastanowić czy nie zastosować w tym przypadku wzorca singelton. W zadnym wypadku dyspozytor nie powinien pobierać całej tablicy $_POST i $_GET i szukać w nich zmiennej zawierającej żadanie. Wstępną filtracją danych powinna zajmować się, jak już o tym wspomniałem inna klasa, która oprócz tablic $_POST i $_GET powinna też brać pod uwagę $_COOKIE. Niekiedy do wstępnej walidacji przydają się też informacje z tablicy superglobalnej $_SERVER lub z sesji. Przeczytaj np. Aplikacja php – system wejścia. Inne uwagi. Widze, że stosujesz notację węgierską, ale zdarza Ci się o tym zapominać ![]()
Poważniejszą przypadłością jest sposób komentowania. Polecam przyjąć jeden ze standardów np. rodem z phpDocumentatora. -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:13 |