Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Theme jako szablon czy plik .php?
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
derte
Witam,

Jako ze jestem nowym uzytkownikem pozdrawiam wszystkich.

--

Od kilku miesiecy pisze system CMS ktorego glownymi zalorzeniami byly:

- jak najmniejsze obiciazenie dla serwera pod wzgledem liczby zapytan
- jak najwydajniejsza budowa aby koszt utrzymania takiego systemu byl jak najmnijeszy (male transfery)

i tutaj zaczyna sie moj dylemat; caly czas system skorek byl oparty na jednym pliku .php w kotrym to byly zawarte informacje co do stylu (via Postnuke itp)

Jednak problem jest w tym ze tak generowane strona nie sa tak estetyczne i elastyczne jak theme generowany na zasadach zwyklych szablonow html. + dla html

System ma bardzo rozbudowane zabezpieczenia i zasady przydzielania praw dla poszczegolnych uzytkownikow i z tego wzgledu generowanie szablonow na zasadzie !<-- IF usr eq prawo --> lub !<-- IF usr eq status --> zostalo wylaczone ze wzgledow bezpieczenstwa i zasad. - dla html, duza liczba mozliwych do wywolania szablonow

System posiada klase do generowania formularzy, poniewarz w zaleznosci od praw sa tworzone formy - dla html, nalerzalo by stosowac funkcje !<-- !IF... ktora jest nie potrzebna, wiec same szablony tez sa zbedne.

Generowanie gotowej strony z pliku .php lub .tpl jest praktycznie bez roznicy (1-2 set sekundy), jednak plik .php jest mniejszy pozatym nie trzeba go wczytywac 2 krotnie tak jak w przypadku html.


Czy w takim razie jest sens uzywania szablonow na styl np. phpBB gdzie zawartosc jest generowana dynamicznie (bardzo duza rozpietosc mozliwych rezultatow).

Moze to zagmatfalem i nie rozumiecie tego dylematu ale wyjasnie wszelkie niuanse jezeli ktos bedzie pytal.
squid
osobiscie jestem zdania ze nie warto otwierac kilu plikow i z nich wczytywac stopke menu itd. ja robie plik np. wyglad.php o nastepujace tresci:

[php:1:ec21391b10]<?php
function pokaz_naglowek ($tytul, jakie inne dane...){
//jesli trzeba cos przeliczyc to zazwyczaj tu
?>
<head> ...

<title><? //jakies wyliczenia decyzje i inne bajery ?></title>

</head>

<?
}

//i tak dal wszystkich mozliwych elementow

?>[/php:1:ec21391b10]
Sh4dow
jesli chcesz tak myslec, ze opieranie si ena wielu plikach jes zbedne oraz za duzo czasu trwa generowanie, to w takim razie czemu kozystasz z klas? Programowanie obiektowe, jako takie, w porownaniu do proceduralnego, jest wolniejsze. Przyczyna jest to jak sie pisze obiekty.
Szablony w wielu plikach,tak jak programowanie obiektowe, sa stworzone po to, aby była możliwość łatwej modyfikacji.
Oczywiscie, mozna urzyc pliku php z funkcjami jako czesciamy layoutu, ale przyjzyj sie jak łatwo czytelny jest taki kod.
Czy w jednym pliku html dasz rade zrobic caly zbior podstron dla calej strony? Jak sie uprzesz to przy smartach dasz rade. Ale znowu kłania sie łatwosc modyfikacji i czytelnosc struktury.
Ja tez wlasnie pisze CMS'a i opieram go o szablony. Na chwile obecna mam 7 plikow *.tpl ktore skladaja sie na cala strone. Jesli bede chcial cos zmienic, to poprostu zmieniem jeden plik, ktory jest mniejszy, i latwiej mi sie w nim szuka.
Nie ma idealnego rozwiazania. Predkosc albo estatyka, wybor nalezy do ciebie.
A co do jak najmniejszej ilosc generowanej strony(transfer dla klienta) To juz pozostaje ci optymalizowac grafike i jak najmniejsze ilosci kodu html.

Jesli zle cie zrozumialem to przepraszam. Wydaje mi sie ze o co ci chodzi.
Pozdrawiam
Nalfein][WR
Jest jeszcze inne rozwiązanie. Mamy pliki .tpl typu header i footer, ale są one dołączane tylko raz i wtedy powstaje nowy plik .tpl z włączonymi już mniejszymi .tpl-ami. To dołączanie wymuszamy my, gdy edytujemy taki pliczek wywołując taką prostą prekompilację. Wtedy przy otwieraniu strony przetwarzany jest tylko jeden szablon, zawierający już "wklejone" te mniejsze fragmenty. Oszczędzamy wtedy na otwieraniu plików, ale musimy pamiętać o tej prekompilacji, "odświeżeniu" tych przyśpieszonych szablonów, gdy dane w mniejszych zostaną zmienione.

Oczywiście może się to odbywać w tle, ale to już nie jest takie proste, gdyż przy otwieraniu wygenerowanego szablonu trzeba sprawdzić czy te składowe się nie zmieniły, a tą informację jakich składowych używa trzeba też gdzieś przechować, więc najprawdopodobniej będzie trzeba załadować jeszcze jeden plik opisujący proces kompilacji. Pracuję właśnie nad frameworkiem, który ma takie możliwości wielostopniowego przetwarzania szablonu (np. najpierw przetwórz szablon wtępnie przy kompilacji wykonując znaczniki [include] i podobne, a znaczniki {include} pozostaw do każdorazowego wykonywania przy otwieraniu strony). Będzie gotowy za kilka miesięcy. Działajaca, ale nieudokumentowana wersja do przejrzenia może już za miesiąc.
halfik
Cytat
System ma bardzo rozbudowane zabezpieczenia i zasady przydzielania praw dla poszczegolnych uzytkownikow i z tego wzgledu generowanie szablonow na zasadzie !<-- IF usr eq prawo --> lub !<-- IF usr eq status --> ...

Mój serwisik działa na takiej właśnie zasadzie, że każy z użytkowników ma jakieś tam uprawnienia i na ich podstawie generowane są pszczególne części witrynki. I właśnie w w tpl'kach mam taki śmieszne ifY, które sprawdzają czy np. userForumLaw == 0 itd. Na każdy z działów stronki user ma wyznaczone prawa z zakresu <0,2>, a prawa są spradzane poprzez pojedycznu moduł.

I jeśli myślisz, że to może powoli chodzić to looknij: www.portalis.prv.pl (ciągle w budowie). Żeby było zabawniej to pwiem, że łącze w tym miejscu to polpak 256, i prócz 2 serwów na których stoi stronka (jeden na UNIXie, a drugi lokalnie na W2000 z bazą danych), do tego łącza jest jeszcze podpieta nieco ponad 100 uczelnianych maszyn winksmiley.jpg
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.