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?
<?php
$tpl = new Template('file.tpl');
$tpl -> add('jakaś_zmienna', 'wartość'); //Albo w tablicy
$block = $tpl -> getBlock('news');
foreach($res as $news)
{
$block -> add(...); //Przypisanie zmiennych
$block -> show(); //Jak zorganizować dane w obiekcie?
}
//Albo inaczej - jak?
?>
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?
<?php
<div id="jakies_id">zawartość</div>
?>
A w PHP coś w stylu:<?php
$tpl -> if( TRUE, ...);
?>
Nie wiem, czy to dobry przykład. W takich blokach znajdują się jeszcze inne zmienne.
A może coś w stylu PHPTal?<?php
<div if="zmienna">...</div>?
?>
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.
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski