Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty][PHP] Jak tworzyć instancję obiektu
Forum PHP.pl > Forum > Przedszkole
Mefiuu
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
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
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
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
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
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
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 smile.gif
Mefiuu
pomyliłem oczywiście GET z POST ... blink.gif

Poczytam o MVC.

Dziękuję za pomoc.

Pozdrawiam smile.gif
viking
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.