[smarty 3] |
[smarty 3] |
7.03.2012, 12:27:19
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 2.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) |
Witam,
Próbuję zrobić coś własnego jakiś mały cms... chciał bym w nim wykorzystać smarty 3 zrobiłem coś takiego: plik index.php
plik initialize.php:
i mam problem z wczytaniem szablonu... Błąd HTTP 500 (Internal Server Error). Kiedy wklejam do pliku initialize.php dwie linijki z pliku index.php odpowiadające za wyświetlanie szablonu wszystko jest ok... ale takie rozwiązanie mnie nie urządza. Jak to można rozwiązać? Co robię źle może źle wczytuję zmienna do pliku index że jej tam nie widzi? Z góry dziękuję za pomoc. Ten post edytował Flaku 7.03.2012, 12:28:00 |
|
|
7.03.2012, 13:16:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
Dlaczego nie skorzystasz z DI (dependency injection), czyli wstrzykiwania zależności? Skoro Smarty ma być systemem szablonów obsługującym cały Twój system, to naturalną rzeczą wydaję się umieszczenie obiektu klasy Smarty wewnątrz klasy Indeks ("uzależnienie" klasy Index od klasy Smarty), czy jakiejś innej klasy głównej/zarządzającej całym systemem szablonów.
Ten post edytował mortus 7.03.2012, 13:17:22 |
|
|
7.03.2012, 13:51:33
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 2.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) |
No tak, tylko teraz jak będę mieć np plik news.php który będzie się wczytywać bezpośrednio będę musiał w nim zrobić to samo... i kiedy przyjdzie mi edytować coś odnośnie smarty będę musiał edytować wszystkie te pliki. Chciałem to zrobić tak że w każdym pliku który będzie wyświetlany bezpośrednio będzie wczytywany plik z ustawieniami typy obiekt z klasa smarty i kiedy przyjdzie mi coś edytować będę robić to tylko w pliku z ustawieniami i działać będzie wszędzie... Dla tego tak tego nie zrobiłem. Ale dziwi mnie to że mój sposób nie działa ;/
|
|
|
7.03.2012, 14:03:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
Myślałem, że ta klasa Index, to jest taki punkt wspólny (FrontController) dla całej aplikacji, czyli miejsce, w którym aplikacja rozpoczyna pracę. Tymczasem kolega z tego wzorca jednak nie korzysta. W takim razie proponuję przekazywać obiekt klasy Smarty jako argument konstruktora.
Już teraz jednak warto się zastanowić nad architekturą całego system i przemyśleć podejście, bo nie wiem, czy jest ono słuszne (choć do jego oceny musiałbym całą specyfikację systemu poznać). Ten post edytował mortus 7.03.2012, 14:04:52 |
|
|
7.03.2012, 14:19:46
Post
#5
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 2.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) |
Ten sposób zwraca taki sam błąd jak ten który napisałem w pierwszym poście:
Ten post edytował Flaku 7.03.2012, 14:20:05 |
|
|
7.03.2012, 15:28:18
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
@mortus: To co pokazałeś w swoim pierwszym poście to dokładna odwrotność dependency injection. Zaś to co pokazałeś w drugim to właśnie DI.
Cytat i mam problem z wczytaniem szablonu... Błąd HTTP 500 (Internal Server Error). Masz tak skonfigurowany serwer, że w przypadku błędu wyświetla taką stronę. Sprawdź logi.
|
|
|
7.03.2012, 15:36:51
Post
#7
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 2.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) |
W logach niestety nie jest nic konkretnego napisane... tylko godzina, plik i wyszukiwarka.
|
|
|
7.03.2012, 23:15:29
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
@mortus: To co pokazałeś w swoim pierwszym poście to dokładna odwrotność dependency injection. Zaś to co pokazałeś w drugim to właśnie DI. Zgadza się, pomyliłem określenia. Zatem gwoli sprostownia: Dependency Non-Injection:
Depenedncy Injection:
Niemniej jednak wszystkie trzy (uwzględniając global) sposoby powinny działać. Włącz wyświetlanie i raportowanie wszystkich błędów skryptu PHP (na początku pliku index.php): Jeśli w głównym katalogu aplikacji masz plik .htaccess (ten sam katalog, w którym jest plik index.php), to spróbuj go tymczasowo usunąć (może któraś z reguł coś psuje). Sprawdź dokładnie logi serwera, bo jakaś wzmianka o błędzie powinna się tam znaleźć. |
|
|
8.03.2012, 08:38:00
Post
#9
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 2.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) |
Jest błąd:
W tej linijce jest obiekt:
Klasa Config jest wczytana automatycznie w piku functions.php który jest wczytywany na samym początku pliku initialize.php przez obiektem smarty. Próbowałem dać obiekt smarty za obiekt Config i wszystko działa ale dla czego nie chce go wczytywać kiedy obiekt smarty jest przed obiektem Config ?:/ coś tam chyba w smarty jest pokręcone? |
|
|
8.03.2012, 22:19:37
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
Ciężko cokolwiek powiedzieć nie mając zielonego pojęcia o tym, jak wygląda kod, który powoduje problemy. Może to wina Smarty, a może i nie.
|
|
|
Wersja Lo-Fi | Aktualny czas: 10.06.2024 - 10:24 |