![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 25 Dołączył: 22.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:style_emoticons/default/smile.gif)
Od razu przejdę do rzeczy. Buduję stronę internetową. Dla przykładu załóżmy, że mam następujące podstrony: Kod http://www.moja-strona.pl/users/jan.kowalski http://www.moja-strona.pl/projekty/hello.word http://www.moja-strona.pl/about Dla każdej podstrony tworzę osoby plik, który ją (tj. stronę) generuje: Kod dipslay_users.php dipslay_projects.php about.php O co mi chodzi? Chciałbym móc zrobić coś takiego:
Mówiąc krótko - wszystkie strony mają "przechodzić" przez jeden plik oraz zmiennych użytych w pliku index.php chciałbym móc używać w pozostałych plikach. Czy muszę do tego użyć global, tzn. czy to muszę być zmienne globalne? Czy może ma ktoś inny pomysł? Inną koncepcję? (IMG:style_emoticons/default/smile.gif) Używam silniczka szablonów (RainTPL) (gdyby komuś ta informacja była potrzebna). |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 25 Dołączył: 22.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
No jak na złość - kiedy chciałem zrobić malutki test padł mi XAMPP (IMG:style_emoticons/default/tongue.gif) Musiałem zainstalować go ponownie (IMG:style_emoticons/default/tongue.gif) No, ale przynajmniej teraz mam aktualną wersję (IMG:style_emoticons/default/smile.gif)
Wracając do tematu - Twój kod działa - o coś takiego mi chodzi (IMG:style_emoticons/default/smile.gif) Przyznam się bez bicia, że testowałem ten sposób kiedyś jednak z negatywnym rezultatem. Zapewne coś schrzaniłem (IMG:style_emoticons/default/smile.gif) Pytanie tylko teraz - czy takie rozwiązania się stosuje? Czy są one praktykowane? Zastanawiam się też - include_once, czy require_once? Wiem, że jedna funkcja wypluwa warning, a druga fatal error. Czy jest jeszcze coś o czym powinienem wiedzieć stosując te funkcje przy takim rozwiązaniu? (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 12 Dołączył: 23.11.2006 Skąd: WL Ostrzeżenie: (0%) ![]() ![]() |
Pytanie tylko teraz - czy takie rozwiązania się stosuje? Czy są one praktykowane? Podałem ci przykład pliku PHP Fusion z maincore.php, który jest includowany na samej górze prawie każdego pliku w tym CMSie, zawiera on szereg funkcji które są najczęściej używane... ale przed funkcjami są sprawdzane i ustawiane "w przypadku FUSIONA" stałe... (czy użytkownik zalogowany, konfiguracje itp...), includowane pliki itd.. <- (Tak jak ty chciałeś) W taki oto sposób wszystkie najważniejsze zmienne są dostępne prawie w każdym pliku... Tak więc jak najbardziej jest to praktykowane, potwierdza to np Fusion... Cytat Zastanawiam się też - include_once, czy require_once? Wiem, że jedna funkcja wypluwa warning, a druga fatal error. Jak zapewne wiesz są 4 rodzaje funkcji dołączających(includujących). include, include_once, require, require_once. include a require różni się tym że w przypadku nie znalezienia pliku, include wypluwa błąd ale skrypt jest wykonywany do końca. Jeśli chodzi o require to parser wypluwa błąd i skrypt zostaje przerwany w miejscu błędu.(Wolałem to napisać dla późniejszych niejasności) no i jeszcze jest _once wsumie jak sama nazwa wskazuje "once -> raz" czyli w tłumaczeniu "dołącz ale tylko raz" to znaczy że jeśli plik już był dołączony to funkcja z "_once" jest pomijana. A teraz require czy include? Powiem ci to na moim przykładzie. Wszystkie pliki z niezbędnymi funkcjami, konfiguracją, klasami(np. mysql) bez których strona nie może działać, require. Mniej ważne pliki includuje. Czyli takie które nie wpłyną tak bardzo na stronę jak brak połączenia MySQL czy inne... Cytat Czy jest jeszcze coś o czym powinienem wiedzieć stosując te funkcje przy takim rozwiązaniu? Tak, ponieważ funkcja include jeśli nie umiejętnie się nią posługujesz ciągnie za sobą pewne zagrożenia typu. File inclusion... Ale ja nie znam się na tym zabardzo dlatego prosił bym kogoś bardziej wtajemniczonego o wypowiedzenie się w tym temacie. Pozdrawiam! Ten post edytował szmerak 3.01.2012, 02:21:46 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 21:55 |