Alternatywa dla HTM::Template
Von: Calamitas (calamitas@nospam.gazeta.pl) [Profil]
Datum: 03.07.2009 21:41
Message-ID: <h2lmtn$8c6$1@inews.gazeta.pl>
Newsgroup: pl.comp.lang.perl
Datum: 03.07.2009 21:41
Message-ID: <h2lmtn$8c6$1@inews.gazeta.pl>
Newsgroup: pl.comp.lang.perl
Witam,
Potrzebujê jakiego¶ wygodnego modulu do szabolonów. Znam HTML::Temlate,
ale
przestaje mi on wystarczaæ. Jest sporo tego, mo¿ecie doradziæ co
wybraæ?
Z wstêpnego przejrzenia dokumentacji wytypowa³em POE, Catalyst i Masonm ale
by sprawdziæ, co rzeczywi¶cie te rzeczy potrai±, musia³bym
po¶wiêciæ sporo
czasu na ich poznanie i wypróbowanie...
Który z istniej±cych modu³ów spe³nia poni¿sze
oczekiwania, lub daje mo¿liwo¶æ
dorobienia takich funkcjonalno¶ci:
1. Mo¿liwo¶æ stosowania komponentów - obiektowych
modu³ów, o których
istnieniu "nie wie" sam engine aplikacji.
Przyk³adowo w szablonie wpisuje co¶ w stylu <TMPL_COMPONENT
OBJECT="MyModule::Task->new('<TMPL_VAR NAME=\"TASK\" />')"
METHOD="display
(style => 'compact', cols => 2" />
A engine wyszuka sobie perlowy modu³ MyModule::Task, zainicjuje go z podanym
parametrem, a potem wykona na nim metodê display z podanymi argumentami i
zwrócony ci±g wklei w to miejsce.
To przyk³ad - chodzi mi o wyrzucenie pewnych komponentów do
modu³ów - czêsto
s± to obiekty typu DBIx::Class oparte o bazê danych - chcia³bym
móc dorzucaæ
nowe komponenty, poprzez dogranie modu³u, by móc potem je wykorzystywaæ
tylko
poprzez umieszczenie odwo³ania do niech w szablonie, bez konieczno¶ci
grzebania w pozosta³ym kodzie (co najwy¿ej restart aplikacji).
2. Rekurencyjne przetwarzanie szablonu - by tekst zwrócony przez przyk³ad z
punktu wy¿ej móg³ tak¿e zostaæ sparsowany jako szablon.
Oczywi¶e to powinno tak¿e dotyczyæ plików include'owanych (jak
TMPL_INCLUDE z
HTML::Temlate)
3. Fajnie by by³o, jakby szablon móg³ byæ poprawnym plikiem XML -
coby edytor
siê nie dar³.
4. Z drugiej strony dobrze by by³o, gdyby mechanizm nie wymusza³ tworzenia
poprawnej sk³adni HTML/XML, ale to chyba wszystkie modu³y maj±...
5. Opjonalnie - pewnie nic 'z pude³ka' tego nie ma, ale mo¿e co¶ daje
mo¿liwo¶æ dorobienia tego: gdy parser natrafia na fragment taki jak w
pkt 1,
to próbuje wykonaæ na tym metodê o jakim¶ z góry ustalonym
identyfikatorze
(np. header_includes) i je¶li taka istnieje, to to, co zwraca wstawia³o w
sekcji HEAD nag³ówka.
Chodzi mi o to, by wstawiaæ ew. skrypty javascriptowe czy CSSy. Oczywi¶cie
przy spe³nieniu pkt 1 da sê to zrobiæ wpisuj±c odpowiedni fragment
w
nag³ówku, ale mi chodzi o dzia³anie automtyczne, by ³atwiej
stworzyæ
komponenty bêd±ce pojemnkami na kolejne komponenty (bez modyfikacji szablonu
g³wónego).
6. Zupe³y bajer - mi³o by by³o, jakby engine dawa³ siê
³atwo spi±æ z
Log::Log4perl (jak DBIx::Class)
7. Dobra dokumentacja. To co znalaz³em, szczególnie dla POE
ciê¿ko mi nazwaæ
dobr± dokumentacj± :-(
Z góy dziêkujê za wszystkie sugestie. Odpowiedzi tupu
"ch³opie, zabierasz siê
do tego od d*** strony" tak¿e mi³o widziane, o ile zechcecie
rozszerzyæ tak±
wypowied¼ o sekcjê 'dlaczego' ;-P
Radek
--
Wys³ano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
[ Auf dieses Posting antworten ]Antworten
- hubert depesz lubaczewski (03.07.2009 22:40)
- Stachu 'Dozzie' K. (05.07.2009 04:06)
- Maciej Misiak (05.07.2009 18:52)
