![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z dziedziczeniem. Zrobiłem klasę AbstractController która zawiera metodę getView(), która zwraca mi zmienną $view w której trzymam ścieżkę do pliku z widokiem.
Stworzyłem klasy UserController oraz IndexController która dziedziczy po klasie AbstractController. W metodzie tych klas, indexAction() ustawiam ścieżkę do pliku i zapisuję ją w zmiennej $view:
Dalej stworzyłem klasę Strategy która wybiera, który controller utworzyć:
następnie stworzyłem klasę View która odpowiada za wyświetlenie:
No i na końcu plik index.php który to wszystko łączy:
Wszystko działa pięknie jeśli do klas UserController i IndexController dodam ręcznie metodę getView która znajduje się u ich rodzica AbstractController. Same niestety tej metody nie chcą dziedziczyć. Tzn dziedziczą lecz do klasy View dociera pusta zmienna $view zbłędem: Warning: require(): Filename cannot be empty in C:\websites\mikrop\vendor\Framework\View\View.php on line 20 Fatal error: require(): Failed opening required '' (include_path='.;C:\php\pear') in C:\websites\mikrop\vendor\Framework\View\View.php on line 20 Tak jakby klasa UserController i IndexController odziedziczyły metodę getView() lecz nie wykonały jej wogóle(?) lub niewykonały jej porawnie? Jeśli bedę miał większą ilość Controllerów to wolałbym aby metoda która i tak zawsze będzie wyglądać tak samo, mogła być dziedziczona. Niestety gdzieś robię błąd. Proszę o pomoc. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.07.2025 - 11:54 |