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%)
-----


Cytat
To my rozmawiamy o Routerze, czy o Request?
Oczywiście o Routerze, przepraszam ale tak mi się wstawiło, metoda setRouter wygląda tak samo.

Cytat
Jezeli we front kontrolerze rejestrujesz request, to troche mija sie to z celem.
Gdzie potrzebujesz robisz "new Request;".
Przepraszam ale nie rozumiem o co Ci chodzi ?

Czyżbym tworzył obiekty -> Request, Response, Router w nie właściwym miejscu ? FrontController nie jest od tego ?

Poniżej kawałek z Zend_Controller_Front
  1. <?php
  2. /**
  3.  * Dispatch an HTTP request to a controller/action.
  4.  *
  5.  * @param Zend_Controller_Request_Abstract|null $request
  6.  * @param Zend_Controller_Response_Abstract|null $response
  7.  * @return void|Zend_Controller_Response_Abstract Returns response object if ret
    urnResponse() is true
  8.  */
  9. public function dispatch(Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null)
  10. {
  11.  
  12. /**
  13.  * Instantiate default request object (HTTP version) if none provided
  14.  */
  15. if (null !== $request) {
  16. $this->setRequest($request);
  17. } elseif ((null === $request) && (null === ($request = $this->getRequest()))) {
  18. require_once 'Zend/Controller/Request/Http.php';
  19. $request = new Zend_Controller_Request_Http();
  20. $this->setRequest($request);
  21. }
  22. ?>

Właśnie we FrontControllerze tworzą obiekty tych klas.

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 - 00:33