Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System szablonów - parę pytań
krzysiek9394
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 4.09.2009

Ostrzeżenie: (0%)
-----


Witam, mam pare pytań o tworzeniu własnego systemu szablonów.

1. Załóżmy że mamy dwa pliki szablonów:
  1. <title>{tytul}</title>
  2. </head>
  3. <div id='header'>
  4. <img src='header.png' />
  5. </div>
  6. <div id='panele'>
  7. <div id='menu'>
  8. Menu
  9. </div>
  10. <div id='panel1'>
  11. Panel 1
  12. </div>
  13. </div>
  14. <div id='zawartosc'>
  15. {zawartosc}
  16. </div>
  17. <div id='stopka'>
  18. {stopka}
  19. </div>
  20. </body>
  21. </html>


i drugi:

  1. <title>{tytul}</title>
  2. </head>
  3. {include header.tpl}
  4. {include panele.tpl}
  5. <div id='zawartosc'>
  6. {zawartosc}
  7. </div>
  8. {include stopka.tpl}
  9. </body>
  10. </html>


(w tym drugim pliki typu header.tpl czy panele.tpl zawierają divy podane w pierwszym pliku)

I tu kieruję pierwsze pytanie: która z metod jest lepsza (wydajność, porządek).
Pytanie drugie: czy jest sens robienia plików .tpl do każdego pliku .php? np.
  1. index.php
  2. index.tpl
  3. tresc.php
  4. tresc.tpl
  5. uzytkownicy.php
  6. uzytkownicy.tpl
  7. ustawienia.php
  8. ustawienia.tpl
  9. newsy.php
  10. newsy.tpl
  11. artykuly.php
  12. artykuly.tpl

itd. Czy nie wprowadzi to zbyt dużego bałaganu w plikach? Jeśli tak to jakie inne wyjście polecacie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To, czy robić plik.php i plik.tpl zależy tylko od jednego -> czy dane w tpl są całkowicie statyczne czy nie. Plik.php można przyrównać do kontrolera a plik.tpl do widoku najprościej ujmując. Jeśli więc w widoku nie masz żadnych danych dynamicznych tylko plain-text to robienie dla niego plik.php tylko po to, by móc wywołać plik.tpl mija się z celem. Samo stosowanie php i tpl jest jak najbardziej sensowne, gdyż oddzielasz od siebie strukturę strony od operacji logicznych. Po to jest widok by wyświetlać już przetworzone dane i nic więcej. Może on jedynie minimalnie się zmieniać w zależności od tych danych (jakieś if czy pętle (IMG:style_emoticons/default/winksmiley.jpg) ), ale nic ponadto. Od pobierania, obróbki danych masz plik php. Tpl ma to tylko wyświetlić. Dzięki temu nie musisz sie martwić rzeczami w stylu: "Do licha... Gdzie pomiędzy tym wszystkim wyświetlam tę konkretną daną i co jeśli zmienię coś". Dzięki temu interfejs strony jest w dużym stopniu niezależny od stojącego za nim silnika. Ja niestety pracuję w firmie, gdzie większość serwisów to jeszcze stare php4 i muszę grzebać się w kodzie przez szukanie w jakiej pętli gdzie jest wywoływane echo wyświetlające coś tam i jeszcze porozrzucana całość po pliku w niewiadomym miejscu, bo jest to funkcja wywołana kaskadowo przez kilka funkcji i przyjmująca jako parametry jakieś globale. To jest tragedia w której trzeba spędzić kilka godzin przynajmniej by połapać się co jest gdzie, zwłaszcza, że nazewnictwo plików w stylu srodek1.php, srodek2a.php, srodek3.php to naprawdę "przyjemność". Jedyny plus jest taki, że szef już ulega narzekaniom działu IT (czyli moim i kumpla (IMG:style_emoticons/default/winksmiley.jpg) ) i wszystkie serwisy docelowo będą przepisywane na obiektówkę w php5. Zejdzie nam jeszcze w tej firmie jak nic kawał czasu zanim bazy przekonwertujemy, napiszemy od zera layouty, administracje itp (IMG:style_emoticons/default/smile.gif) No ale po naszej zabawie serisy będa już tylko wprowadzały funkcjonalności jako proste moduły, a nie grzebanie się i poprawianie ze 20 plików naraz i jeszcze liczyć na to, że jedna zmiana w pliku X nie spapra czegoś w pliku Y i Z o czym dowie sie człowiek dopiero po fakcie, bo nie wiedział, że one też czegoś z pliku X używały (IMG:style_emoticons/default/winksmiley.jpg)

EDIT: Ta tyrada była tylko po to, byś mógł docenić sensowność systemu szablonów i tego jak powinny wyglądać.

Ten post edytował thek 11.09.2009, 15:23:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 13:31