![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Otóż mam taki problem. Jest sobie klasa widoku HTML (w odróżnieniu od np. XML)
I w szablonie jest coś takiego
Ale niestety to wywala błąd: Cytat Fatal error: Using $this when not in object context in [ścieżka]\views\html\templates\default\default.html on line 6 Czy da się to jakoś załatwić, żeby informacje były wyciągane bezpośrednio z widoku? Czyli innymi słowy, żeby nie było tego błędu i wszystko działało :-) ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 37 Dołączył: 1.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Nie da się, starasz się wywołać obiekt z poziomu metody statycznej. Są 2 obejścia problemu (przynajmniej takie o których wiem (IMG:style_emoticons/default/smile.gif) ).
Po pierwsze rozwiązanie niezbyt dobre, możesz w metodzie statycznej utworzyć kod PHP (w Stringu) w którym tworzysz klasę która dziedziczy po klasie html, natomiast w konstruktorze tej klasy umieścić kod z szablonu. Potem inicjujesz taką klasę i po sprawie. Oczywiście ten kod PHP wykonujesz w klasie statycznej za pomocą evala. Drugie rozwiązanie jest o niebo lepsze - możesz z klasy Core zrobić Singletona, umieścić tam kod metodę magiczną __call która będzie sprawdzała czy dana metoda należy do klasy html i w razie czego ją wywoływał. Oczywiście w takim przypadku w loadFile trzeba będzie przesyłać obiekt klasy html aby klasa Core mogła sprawdzić czy dana metoda znajduje się w klasie i ewentualnie ją wywolać. Metoda show będzie wtedy wyglądała tak:
W ogóle na Twoim miejscu zastanowiłbym się czy jest jakiś sens korzystania w tym przypadku z Core, nie możesz dołączyć kodu szablonu bezpośrednio w metodzie show? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 13:37 |