Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [OOP][MVC][Routing] Jak wywołać z routingu kontroler i wyświetlić akcje
in5ane
post 13.09.2013, 12:08:11
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Hej, piszę dla nauki framework. Utknąłem w środku routingu, odbieram kontroler, akcje i parametry z adresu i teraz nie wiem, jak mam wywołać dany kontroler. Może ktoś mnie nakieruje? Oto mój router:

  1. <?php
  2.  
  3. namespace System\Core;
  4.  
  5. use System\Core\Uri;
  6.  
  7. class Router
  8. {
  9.  
  10. public $uri;
  11. public $controller;
  12. public $method;
  13. public $params = array();
  14.  
  15. public function __construct()
  16. {
  17. $returnPath = new Uri;
  18. $this->uri = $returnPath->returnPath();
  19. $this->parseRoutes();
  20. }
  21.  
  22. private function parseRoutes()
  23. {
  24. if (empty($this->uri)) {
  25. echo 'default controller';
  26. }
  27. else
  28. {
  29. $segments = array(explode('/', $this->uri));
  30. $this->setRoutes($segments[0]);
  31. }
  32. }
  33.  
  34. private function setRoutes($segments)
  35. {
  36. $this->controller = $segments[0];
  37. if (!empty($segments[1]))
  38. {
  39. $this->method = $segments[1];
  40. for ($i = 2; $i < count($segments); $i++)
  41. {
  42. $this->params[$i] = $segments[$i];
  43. }
  44. }
  45. else
  46. {
  47. $this->method = 'index';
  48. }
  49.  
  50. /* TEST: */
  51. echo 'Kontroler: '. $this->controller;
  52. echo '<br />Akcja: '. $this->method;
  53. for ($i = 2; $i < count($segments); $i++)
  54. {
  55. $j = $i - 1;
  56. echo '<br />Parametr '. $j .': '. $this->params[$i];
  57. }
  58. }
  59.  
  60. }


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
mstraczkowski
post 13.09.2013, 12:21:56
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

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


Przyda ci się funkcja call_user_func_array(array($obiektController, $stringAkcja), $parametryAkcji)

Ten post edytował mstraczkowski 13.09.2013, 12:22:28


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
nospor
post 13.09.2013, 12:24:25
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Problem z OOP nie ma zadnego zwiazku - przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 20:31