Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System szablonów wg wymagań, Pisać własny czy przerobić inny?
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Potrzebuję bardzo szybkiego i wydajnego systemu szablonów. Zastanawiam się, czy pisać własny, czy przerobić istniejący do potrzeb CMS-a.

Funkcje
  • Pętle lub wyciąganie fragmentów. Dla przykładu chcę wyświetlić nowości. Ich ilość na stronie zależy od ustawień. Każdy news ma inne dane. W jaki sposób najlepiej to zrobić? Podobnie jak podpinanie w PDO?
    1. <?php
    2. $tpl = new Template('file.tpl');
    3. $tpl -> add('jakaś_zmienna', 'wartość'); //Albo w tablicy
    4. $block = $tpl -> getBlock('news');
    5.  
    6. foreach($res as $news)
    7. {
    8. $block -> add(...); //Przypisanie zmiennych
    9. $block -> show(); //Jak zorganizować dane w obiekcie?
    10. }
    11. //Albo inaczej - jak?
    12. ?>
    Co do organizacji danych - albo zamiany następują dopiero w metodzie show(), albo przetworzone dane przechowywane są w dodatkowej zmiennej (większe zużycie pamięci RAM). Trzeba zwrócić też uwagę na instrukcje warunkowe i inne operacje.
  • Zmienne - prawdopodobnie w stylu {zmienna}. Istotną kwestią jest dostęp do innych zmiennych niż przypisane, choć niekonieczną.
  • Instrukcje warunkowe - bez tego trudno napisać elastyczne szablony z dostosowaniem wyglądu do ustawień. Jak je zaimplementować? Może podobnie jak w XT?
    1. <?php
    2. <div id="jakies_id">zawartość</div>
    3. ?>
    A w PHP coś w stylu:
    1. <?php
    2. $tpl -> if( TRUE, ...);
    3. ?>
    Nie wiem, czy to dobry przykład. W takich blokach znajdują się jeszcze inne zmienne.

    A może coś w stylu PHPTal?
    1. <?php
    2. <div if="zmienna">...</div>?
    3. ?>
    Na podobnej zasadzie mogą działać pętle.
  • Cache - bardzo ważne w celu przyspieszenia skryptu. 2 sposoby:
    - zapis pliku .tpl do .php bądź innej formy
    - zapis przetworzonego szablonu do .html (gdy dane rzadko się zmieniają)
    Jeżeli skrypt dostosowywałby szablony sprawnie, funkcja nie jest konieczna.
Inne bajery są raczej zbędne. Kolejna rzecz - łączny rozmiar podstawowych plików systemu szablonów - maks. 4KB.

Czy opłaca się tworzyć własny system szablonów, czy lepiej wykorzystać już istniejący i dostosować go (np. usunąć zbędne funkcje i instrukcje)? Zastanawiam się nad XT.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zimi
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

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


Jeśli chodzi o suche fakty:
nic nie będziesz szybsze od czystego php...
jeśli korzystasz z MVC to masz sobie V (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i tam ładuj klasy i funkcję i wszystko co chcesz
podobnie jak w dokumentacji SMARTY to opisali jeśli jesteś purystą i szablony mają być wolne od kodu to możesz tak zrobić... a jak chcesz władować tam trochę logiki (ale tylko i wyłącznie logiki wyświetlania, inaczej to traci sens) to wolna droga... w php możesz tak samo
pseudo - argument: grafik musi się uczyć PHP, tak to musi uczyć się SMARTY-ów czy innego szablonu, zasadniczo zbyt trudne to nie jest z php
  1. <?php
  2. class ArticleView
  3. {
  4. public function nazwaSzablonu()
  5. {
  6. //kod
  7. }
  8. }
  9. ?>

zamiast nazywać pliki nazwie sobie funkcję...
w SMARTY-ach include, w PHP include w SMARTY-ach foreach ...
jak nauczysz się SMARTY-ów to nie ma powodu dla którego nie miałbyś się nauczyć PHP

argument: a jak grafik coś spieprzy to cały skrypt się wyłoży
zrób sobie "panel grafika" bardzo proste rozwiązanie
grafik zrzuca plik gdzieś na serw, a nie do szablonów
i odpala sobie swój panel, pokazuję plik który chce podmienić PHP otwiera go i na końcu dopisuję za klasą kod return TRUE;
jeśli wynik eval będzie TRUE znaczy że nie ma w nim błędów czy coś podobnego i aplikacja raczej nie ma prawa się już wyłożyć, a skrypt może zapisywać poprzednią kopię gdzieś, i jeśli grafik stwierdzi sam naocznie że coś szablon niezupełnie działa jak powinien, podmienić przez skrypt z powrotem

nie wiem jakie jeszcze argumenty były przeciw czystemu PHP ale jak sobie to przemyślałem to wydały mi się bezsensowne

System szablonów xt mi się w sumie spodobał jak o nim przeczytałem, trudno go nazwać pseudo-kodem jednak też ma te swoje magiczne klasy czy inne bajery (już dokładnie nie pamiętam), jednak grafik musi dobrze wtedy znać xhtml i css, a to nie u wszystkich jest oczywiste, nie wspominając o xslt które chyba xt wspiera bądź miał wspierać, poza tym obawiam się że parsowanie tych szablonów będzie dosyć czasochłonne, przelecieć wszystko css-em (a masz 2 opcję albo skomplikowane regułki albo od ... id-ów, co w efekcie sprawi że niemal wpisałeś w dane miejsce nazwę zmienną), na stronie xt piszą że ich strona jest generowana właśnie tymi szablonami, czasy trzeba przyznać krótkie ale te strony są niemal statyczne, to nawet specjalnie nie ma czego parsować
a boję się myśleć gdyby ktoś przez przypadek usunął jakiś znacznik otwierający czy zamykający
albo głupi znak > w php to masz debbugera a xt? zapewne odpalisz sobie szablony potem w jakiejś mozilli lub czymś takim i zobaczysz gdzie w kodzie kolorki się zmieniają... ale wg mnie xt choć jest bardzo rozwiązaniem, to chyba mało bawiłoby mnie jego używanie, mam pewne wątpliwości co do czasów generowania i elastyczności tego rozwiązania, ale nie używałem xt więc wypowiadać się nie mogę...

to by było moje zdanie

PS. sporo topiców było na ten temat ostatnio chyba @deirathe rozpoczął podobny (jeśli coś przekręciłem to przepraszam)

PS2. wszyscy piszą potrzebują baaaaaaaaaaaaaardzo wydajnego i szybkiego czegoś, a bądź co bądź większość ich nie potrzebuje...
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 02:57