Mefiuu
3.11.2015, 13:36:53
Witam serdecznie forumowiczów. Dzisiaj uderzam do Was z pytaniem, wyglądającym być może trochę jak pytanie przysłowiowej blondynki ... Kopię po sieci w poszukiwaniu rozwiązań opartych na smarty, znalazłem kilka z nich. Moje pytanie brzmi ... :
Czy jeśli w pliku index.php utworzę sobie instancję obiektu smarty oraz zdefiniuję katalog z templatkami, templatkami_c itp. to czy muszę podobną akcję wykonywać w KAŻDYM pliku w tym katalogu ? Przypuśćmy że mam index.php, artykul.php, galeria.php - czy w każdym z nich musi być taka instancja $smarty = new Smarty; ?
Logicznie rzecz biorąc tak powinno być, aczkolwiek w tych kilku projektach nie mogę się doszukać gdzie w tych pozostałych plikach jest tworzona taka instancja i ustawianie ścieżek. A każdy tutorial na temat smartów kończy się na jednym pliku, nie pokazując co się dzieje w innych.
Wybaczcie być może dziwne pytanie, ale na prawdę nie mogę dojść do tego jak to ma wyglądać.
Pozdrawiam.
nospor
3.11.2015, 13:41:08
plik index.php jest glownym plikiem projektu. Wszystkie strony przechodza przez ten plik.
obiekt smartiego w 99% przypadkow wystarczy stworzyc raz. Ma byc on tworzony np. w index.php i ma byc dostepny wszedzie tam gdzie potrzebny.
kapslokk
3.11.2015, 13:42:32
Jeśli te pliki są niezależne i nie są uruchamiane przez jakiś główny kontroler, to musisz tworzyć obiekt w każdym z nich, albo możesz sobie go tworzyć w innym pliku i ten plik includować do każdego w którym potrzebujesz smartów.
Mefiuu
3.11.2015, 13:42:40
Cytat(nospor @ 3.11.2015, 14:41:08 )

Wszystkie strony przechodza przez ten plik.
Mógłbyś rozwinąć myśl ? W jaki sposób przechodzą ? Czy w każdym pliku php mam includować na początku index.php ?
Cytat(kapslokk)
Jeśli te pliki są niezależne i nie są uruchamiane przez jakiś główny kontroler, to musisz tworzyć obiekt w każdym z nich, albo możesz sobie ją tworzyć w innym pliku i ten plik includować do każdego w którym potrzebujesz smartów.
tak własnie myślałem
nospor
3.11.2015, 13:47:11
Cytat
W jaki sposób przechodzą ? Czy w każdym pliku php mam includować na początku index.php ?
Plik index.php powinien byc glownym plikiem aplikacji. Aplikacja nie powinna pozwalac na bezposrednie odpalanie zadnych innych plikow. To plik index.php powinien includowac wlasciwe pliki w zaleznosci od tego jaka strone aplikacji odpalasz. Dzieki temu wszystko inicjalizujesz w jednym miejscu i nie masz tego porozwalane po petryliardach plikow
Mefiuu
3.11.2015, 13:49:29
Chyba rozumiem. Czyli po prostu zamiast bawić się w np. index.php oraz artykul.php wystarczy zrobić index.php z instancją smartów oraz w zależności od przejścia gdzieś metodą POST includować sobie np. właśnie artykul.php i wtedy smarty będą widoczne, tak ? A później tylko sobie ładnie ustawić mod_rewrite, żeby użytkownik myślał, że rzeczywiście jest na innej podstronie
nospor
3.11.2015, 13:53:29
Tak. Ale to wcale nie musi byc post, moze byc normale get, np
index.php?page=article
i na tej podstawie index.php bedzie wiedzial ze ma zaladowac plik article.php.
Poczytaj cos o MVC. Tam to wszystko jest wyjasnione. Teraz kroczysz naprawde zla sciezka
Mefiuu
3.11.2015, 13:55:03
pomyliłem oczywiście GET z POST ...
Poczytam o MVC.
Dziękuję za pomoc.
Pozdrawiam
viking
3.11.2015, 14:23:54
Albo zobacz mikro frameworki w style Silex, Slim, Expressive. Możeliwe że zamiast bawić się w jakieś rzeźby w index.php będzie Ci dużo wygodniej zacząć w nich pisać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.