Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa Router - i QUERY_STRING i PATH_INFO
jang
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


Witam

Chciałbym zapytać jakie Waszym zdaniem rozwiązanie byłoby najlepsze :

1. klasa FrontController sprawdza $_SERVER['QUERY_STRING'] i $_SERVER['PATH_INFO'] i w zależności od tego które wywołanie wystąpiło tworzy obiekt jednej z klas -> RouterStandard lub RouterNice
2. Klasa Request zajmie się "rozpoznaniem" a FrontController pobierze sobie nazwę -> $this->request->getRouterClassName();
3. Stworzyć jedną klasę Router (niczym w CodeIgniter) która sama sobie sprawdzi i uruchomi jedną ze swoich metod (albo do standarowych urli albo do nice)
4. Utworzyć klasę Router która tylko sprawdzi $_SERVER['QUERY_STRING'] i $_SERVER['PATH_INFO'] i utworzy obiekt bądż RouterStandard bądź RouterNice.
5. Może jeszcze inne rozwiązanie ?

Z góry dziękuję za wszelkie odpowiedzi.
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jang
post
Post #2





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


@Prph
Im mniej wszelakiego kodu tym lepiej (mniejsza możliwość pomyłki) a poza tym nie zamierzam pisać instrukcji obsługi własnego frameworka(?) - patrz ZEND FW. Jeśli chodzi o pkt 1. i 2. to poniżej kawałek kodu z mojego FrontController'a
  1. <?php
  2. public function dispatch()
  3. {
  4. if(null === ($request = $this->getRequest()))
  5. {
  6. $request = new CCC_Request;
  7. $this->setRequest($request);
  8. }
  9. }
  10. public function setRequest($request, $name = 'request')
  11. {
  12. if (is_string($request))
  13. {
  14. CCC::loadClass($request);
  15. $request = new $request();
  16. }
  17. $this->request = $request;
  18. $this->registerObject($name, $request);
  19. }
  20. /*
  21.  * Zwraca obiekt klasy CCC_Request
  22.  */
  23. public function getRequest()
  24. {
  25. return $this->request;
  26. }
  27. ?>
Natomiast jeśli chodzi o plik config.php (tablica) to i tak klasa Config z niego korzysta a jedno pole więcej czy mniej do odczytu to przecież żadna różnica.

@NULL a więc proponujesz mieszankę CodeIgnitera i Zenda ?

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 19:36