![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 20.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Temat pewnie nadmiernie eksploatowany jednak nie potrafię znaleźć solucji. Jak jeszcze przykłady obsługi $_GET znalazłem tak nie jestem w stanie ani sobie wyobrazić ani znaleźć takich przykładów dla $_POST. Chciałbym żebyście mnie nakierowali bo zwątpiłem (IMG:style_emoticons/default/winksmiley.jpg) Aby nie odbiec zabardzo od idei MVC action w formularzu powinien wskazywać na index.php. Tylko co dalej? Jak kontroler ma odebrać dane i wybrać odpowiedni widok? Jak to estetycznie połączyć w całość? Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Było: Temat: MVC formularz, filtracja, walidacja, autoryzacja...
Action wskazuje na index.php/nazwamodułu no i w tym module, najczęściej w konstruktorze kontrolera zachodzi sprawdzenie czy otrzymano żądanie POST, jak otrzymano to kontroler zleca wykonanie akcji i na koniec robi przekierowanie, zakładając że np coś dodajesz do bazy (IMG:style_emoticons/default/winksmiley.jpg) 1. Zostaje wysłane żądanie POST. 2. Kontroler bierze sobie widok (tworzy zmienną wskazującą na jego instancję, albo sobie rozszerza klasę widoku, jak kto woli i planuje rozbudowywać cały system, wzorce są wszelakie) 3. Kontroler kojarzy model z widokiem (przekazując mu instancję wybranego modelu) 4. W konstruktorze określono, że user wysłał żądanie POST; zostaje wykonana filtracja/walidacją wysłanych danych, jeśli wszystko poszło ok - kontroler uruchamia daną akcję 5. Zakładając, że akcja została wykonana bez wyrzucenia żadnego wyjątku, kontroler robi przekierowanie. W modelu zapytania do bazy, zwrócenie gotowych tablic, w widoku kod formularza, cały html no i oczywiście zakładając, że widok jest samoświadomy - pobranie danych z modelu i wsadzenie pól w kod html. Voila. Jeśli źle to proszę mnie poprawić (IMG:style_emoticons/default/biggrin.gif) (jakieś kwiatki, braki składni wybaczcie - późno już... (IMG:style_emoticons/default/biggrin.gif) ) Ten post edytował Luneth 15.08.2010, 01:50:03 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Szczerze to nie mam pojęcia w czym może być problem. Czemu formularz miałby wskazywać na index.php? Czym POST różni się od GETa? Jak kontroler ma wybrać odpowiedni widok? Proste: na podstawie sobie tylko znanych kryteriów - dane z POST/GET mogą być częścią ów kryteriów.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Może autorowi chodziło o samą wzorcową estetykę, bo gdzie metod nie wsadzisz i jakoś im parametrów nie przekażesz - to wszystko będzie działać, autor tez bardzo uogólnił swój problem, nie napisał czy chodzi np o jakiś system komentarzy, autoryzację a może jakiś kalkulator... (IMG:style_emoticons/default/biggrin.gif) Czemu formularz wskazuje na index.php? Może chodziło mu o to: index.php/news/ (IMG:style_emoticons/default/winksmiley.jpg) Generalnie wszystkie żądania tam trafiają.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na dobrą sprawę dane z POST/GET/COOKIE - to po prostu kolejny model(e).
Cytat Czemu formularz wskazuje na index.php? Może chodziło mu o to: index.php/news/ Generalnie wszystkie żądania tam trafiają. Gwoli ścisłości: to nie ma nic do MVC - kierowanie wszystkiego w jedno miejsce to założenie Front Controllera, nie MVC.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Masz rację, wszakże front controller często towarzyszy aplikacjom opartym na wzorcu MVC (IMG:style_emoticons/default/winksmiley.jpg)
Ten post edytował Luneth 15.08.2010, 03:54:58 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 20.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ciężko mi sprecyzować, ale spróbuje bo widać inaczej się nie da. Chce napisać front kontroler z prawdziwego zdarzenia. Dla przykładu.
Mam wiele formularzy na stronie, głównie znajdujące się w panelu administratora. Nie chce dla każdego takiego Form'a tworzyć nowego pliku .php który będzie go obsługiwał. Co za tym idzie chce wszystkie akcje z Form'ów kierować na index.php. I teraz nie wiem jak podejść do pisania ww kontrolera. W jaki sposób kontroler ma rozpoznać z jakiego formularza pochodzą dane i jaki model do nich dobrać? Proszę jak możecie posiłkujcie się przykładowymi kawałkami kodu. To do mnie przemawia najlepiej. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Każdy formularz niech ma inną nazwę buttonu wysyłającego/zatwierdzającego i po nim rozpoznawaj. Albo zrób switcha na zmienną $_SERVER['PATH_INFO'] i wysyłaj w action takie żądania: index.php/news/add, index.php/news/edit i zgarniaj to switchem. Model wybieraj w zawartości instrukcji warunkowej. Ten post edytował Luneth 15.08.2010, 12:33:20 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 20.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czyli ogólnie za wiele sobie na wyobrażałem po niektórych lekturach (IMG:style_emoticons/default/haha.gif) To jest podejście z że tak to ujme przyszłośćia? Nic bardziej Pro nie da się namotać?
Tak czy siak leci "Pomógł" (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Zawsze można bardziej namotać niż jest potrzebne (IMG:style_emoticons/default/biggrin.gif) Ja bym w Twoim przypadku zrobił tak jak napisałem, a jeśli ktoś inny ma tutaj bardziej "Pro" pomysł, to pewnie się tu wypowie (IMG:style_emoticons/default/smile.gif)
Czy z przyszłością? Myślę, że tak, jak będziesz chciał sobie inaczej wszystko rozłożyć na poszczególne kontrolery dla każdego formularza to uprościsz front controller a resztę przełożysz do tych 'mini' kontrolerów, nie będzie trzeba wszystkiego przepisywać od nowa (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował Luneth 15.08.2010, 13:07:28 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
zerknij na przyklad uproszczonego front controllera
http://skrypta.pl/skrypty-php/budujemy-wla...esc-1-podstawy/ nie sadze abys musial wprowadzac inna obsluge dla POST i GET, wystarczy to zrobic na REQUEST chyba ze masz na tyle szczegolny przypadek ze musisz wiedziec jaka metoda do ciebie trafily dane, ja osobiscie nie lubie jak moj front controller decyduje o podjeciu wszystkich akcji, raczej kieruje sterowanie z front controllera do kontrolera w ktorym w konstruktorze moge nadpisac funkcjonalnosc i stamtad pokierowac do odpowiedniej akcji, oczywiscie wszystko zalezy od specyfiki twojego systemu - jak napiszsz uniwersalny front controller to szybko zauwazysz ze kilka rzeczy ci w nim przeszkadza i cie ogranicza (IMG:style_emoticons/default/smile.gif) ) ale pisanie to jedyna droga do nauki pozdr |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 18:08 |