Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [framework] Ruter .. więcej na głowie .., dyskusja .. pomysły .. rozwiązania
widmogrod
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.10.2005
Skąd: kraków

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


Witam
Ostatnio zastanawiam się nad ruterem w FW, jego zadaniem jest sparsowanie url’a pobranie z niego nazwy kontrolera, akcji i parametrów (tak jest u mnie)
1. co jeżeli podstawowy wzorzec rutera chce zmienić z
/kontroler/action/pram1/param2 ..
na
/jezyk/kontroler/akcja/param1/param2 ..

Jednym z rozwiązań na jakie wpadłem to jest tworzenie wzorów rutera tak jak jest np.: w Zend FW ale jak pobrać wartość języka w tak zdefiniowanym formacie parsowaniu przez rutera

/:Lang/:controller/:action

może wykorzystać metode __call() i po odpowiednim sparsowanu w/w formatu
Pobierać wartości w sposób dynamiczny tj
  1. <?php
  2. $this->getXXX();
  3. ?>

XXX – nazwa parametru
np.
  1. <?php
  2. $this->getLang();
  3. ?>

Oczywiście getController(), gerAction(), getParams() nie były by tworzone w __call() tylko bedą zaimplementowane na ‘stałe’.

Czy użytkownik powinien mieć dostęp do parametrów rutera, żeby mógł pobrać dany parametr .. co na to koncepcja MVC?? i wasza praktyka

Następna kwestią jest to ze oprócz danych z GET (SERVER) mamy też dane przekazywane z POST,

W moim frameworku umożliwiłem odpalanie akcji również za pomocą danych przekazanych w POST (dodawanie do łańcucha akcji) w sumie za jednym przeładowaniem mogłem wykonać trzy akcje z Urla, po wysłaniu formularza z zdefiniowaną akcja,
  1. <?php
  2. $this->AformOpen(array(index, akcja1)); // otwiera formularz z zakodowana akcja do odpalenia
  3. ?>


i po naciśnięciu buttona również z definiowana w nim akcje.
  1. <?php
  2. $this->AButon( array(index, akcja2));
  3. ?>

Czy takie rozwiązanie ma sens
Jak powinny być odczytywane dane akcji przekazywane w POST.
Może utworzyć specjalny filtr który będzie przeszukiwał dane POST i jeżeli znajdzie odpowiednie klucze doda nowa akcje do łańcucha akcji czy tez stworzyć klasę do obsługi żądań akcji POST.
Wydaje mi się ze dobrym rozwiązanie było by stworzenie klasy dziedziczącej po ruterze np. PostRuter

Co o tym sadzicie, jak wy rozwiązujecie tą kwestie.

I jeszcze jedno wpadłem na pomysł walidacji formularzy taki ze dany formularz jest wysyłany do odpowiedniego walidatora np.:
  1. <?php
  2. $this->AFormOpen(nazwa_walidatora); // otwiera formularz z nazwa walidatora do odpalenia
  3. ?>

I później w kontrolerze akcji sprawdzamy jednym poleceniem czy formularz jest poprawny
  1. <?php
  2. $this->isValid(nazwa_walidatora)
  3. ?>


Mam nadzieje ze nie na mieszałem
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
widmogrod
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.10.2005
Skąd: kraków

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


Cytat
jezyk polski jest uruchamiany np. przez indexPL.php a jak ktos sobie wybierze angelski to skrypt bedzie ueuchamiany zIndexEN.php


takie rozwiązanie mi się nie podoba wyobraźmy sobie że będę miał 20 języków co wtedy 20x index .. nie ..

Raczej pozostanę przy mojej koncepcji .. teraz zostaje kwestia jak poinformować klasę czy zostawić to programiście i z każdą instancja klasy ustawiać język przez $this->getLang() czy gdzieś w konfiguracji ustawić monitorowanie odpowiedniego parametru rutera .. ale to juz inny temat ..

PS. Może jeszcze coś dopisze .. zmykam na %%% ...
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 7.10.2025 - 05:00