Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problemik w kontolerze
qbejs
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 9.02.2006

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


Witam,

Mam sobie oto taki kod prostego kontrolera jak widać poniżej. Opisywać chyba nie muszę bo jest b. prosty. Problem pojawia sie w przetwarzaniu parametrów. Dane dostaje z $_GET , kiedy podam mu akcję, wszsystko jest okej. Jednak gdy nie jest podana dostaję komunikat : ) in C:\xampp\htdocs\mvc\MainController.php on line 30">Call to undefined method test:sad.gif) in C:\xampp\htdocs\mvc\MainController.php on line 30

Co do budowy reszty klas. W pliku o nazwie odpowiadajacej nazwie modulu, znajdziemy klase tak samo zatytulowana.W niej zawarte są metody odpowiadajace nazwami akcją ( obrabiaja dane, w mojej klasie Test są metody default ktory jest wywolywana w przypadku braku podanej akcji oraz helloWorld, obie zwracaja returnem rozne stringi. ). Jest tez klasa odpowiadajaca za prezentacje ( nazewnictwo wg. konwencji nazwamoduluView ) ona dostane to co zwrocila metoda modulu i wyswietla wynik ( czyli w moim przypadku dostanie stringa zwrconego przez ktoras z metod klasy Test ).

Zapewne robię coś kompletnie ze złej strony, ponieważ wg. mnie od strony składni i zasad oop w php wyglada to okej.

  1. class MainController {
  2.  
  3. public function __construct($moduleClass, $action = null)
  4. {
  5. if (isset($moduleClass))
  6. {
  7. if (file_exists("modules/".$moduleClass.".php") && file_exists("modules/".$moduleClass."View.php"))
  8. {
  9. require_once("modules/".$moduleClass.".php");
  10. require_once("modules/".$moduleClass."View.php");
  11. if (class_exists($moduleClass))
  12. {
  13. $presenterClass = $moduleClass."View";
  14. $module = new $moduleClass;
  15. $presenter = new $presenterClass;
  16. if (isset($action))
  17. {
  18. $presenter->action = $action;
  19. $presenter->data = $module->$action(); // tu parser wskazuje error
  20. }
  21. else
  22. {
  23. $presenter->action = "defaultAction";
  24. $presenter->data = $module->defaultAction();
  25. }
  26.  
  27. $presenter->display();
  28. }
  29. else
  30. {
  31. die("Modul <b>".$moduleClass."</b> nie istnieje !");
  32. }
  33. }
  34. else
  35. {
  36. die("Nie można załadować modułu <b>".$moduleClass."</b> !");
  37. }
  38. }
  39. else
  40. {
  41. die("Nie podano modulu");
  42. }
  43. }
  44. }
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: 21.08.2025 - 04:58