1 %include /usr/lib/rpm/macros.php
3 %define _subclass Template
5 %define _pearname %{_class}_%{_subclass}_Flexy
7 Summary: %{_pearname} - a flexible caching template engine based on SimpleTemplate
8 Summary(pl): %{_pearname} - elastyczny buforuj±cy silnik szablonów oparty na SimpleTemplate
9 Name: php-pear-%{_pearname}
13 Group: Development/Languages/PHP
14 Source0: http://pear.php.net/get/%{_pearname}-%{version}.tgz
15 # Source0-md5: 592cae803cbd743b4bb98404a48b6952
16 Patch0: %{name}-case_fix.patch
17 Patch1: %{name}-path_fix.patch
18 URL: http://pear.php.net/package/HTML_Template_Flexy/
19 BuildRequires: rpm-php-pearprov >= 4.0.2-98
22 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
25 HTML_Template_Flexy started its life as a simplification of
26 HTML_Template_Xipe, however in version 0.2, it became one of the first
27 template engine to use a real Lexer, rather than regexes, making it
28 possible to do things like ASP.net or Cold Fusion tags. However, it
29 still has a very simple set of goals.
32 - prevents to much logic going in templates
33 - Easy to write documentable code
34 - By using object vars for a template rather than 'assign',
35 you can use PHPDoc comments to list what variable you use.
36 - Editable in WYSIWYG editors
37 - you can create full featured templates, that don't get
38 broken every time you edit with Dreamweaver(tm) or Mozilla
40 - Uses namespaced attributes to add looping/conditionals
42 - runtime is at least 4 time smaller than most other template
44 - uses compiled templates, as a result it is many times faster
45 on blocks and loops than than Regex templates (eg.
47 - Safer (for cross-site scripting attacks)
48 - All variables default to be output as HTML escaped
49 (overridden with the :h modifier)
50 - Multilanguage support
51 - Parses strings out of template, so you can build translation
53 - Compiles language specific templates (so translation is only
54 done once, not on every request)
55 - Full dynamic element support (like ASP.NET), so you can pick
56 elements to replace at runtime
58 The long term plan for Flexy is to be integrated as a backend for the
59 Future Template Package (A BC wrapper will be made available - as the
60 author needs to use it too).
62 In PEAR status of this package is: %{_status}.
65 HTML_Template_Flexy pocz±tkowo by³ uproszczeniem HTML_Template_Xipe,
66 jednak od wersji 0.2 sta³ siê jednym z pierwszych silników szablonów
67 u¿ywaj±cych prawdziwego analizatora leksykalnego zamiast wyra¿eñ
68 regularnych, co umo¿liwia robienie rzeczy w stylu ASP.net czy
69 znaczników Cold Fusion. Jednak nadal ma bardzo prosty zbiór
70 zastosowañ. Cechy silnika:
71 - bardzo proste API - ³atwe do nauczenia, zapobiega umieszczaniu zbyt
72 du¿ej ilo¶ci logiki w szablonach
73 - ³atwe pisanie dokumentowalnego kodu - poprzez u¿ycie zmiennych
74 obiektowych dla szablonu zamiast przypisywania mo¿na u¿ywaæ
75 komentarzy phpDoc do wypisywania u¿ywanych zmiennych
76 - edytowalny w edytorach WYSIWYG - mo¿na tworzyæ w pe³ni funkcjonalne
77 szablony, które nie psuj± siê po ka¿dym u¿yciu Dreamweavera(tm) czy
78 edytora Mozilli; przy dodawaniu pêtli i warunków u¿ywane s± atrybuty
80 - ekstremalnie szybki - kod uruchomieniowy jest przynajmniej 4 razy
81 mniejszy ni¿ wiêkszo¶æ innych silników szablonów (np. Smarty); u¿ywa
82 skompilowanych szablonów, dziêki czemu jest wiele razy szybszy na
83 blokach i pêtlach ni¿ szablony oparte na wyra¿eniach regularnych
85 - bezpieczniejszy (pod k±tem ataków cross-site scripting) - wszystkie
86 zmienne domy¶lnie s± wypisywane z u¿yciem sekwencji kontrolnych HTML
87 (mo¿na to zmieniæ modyfikatorem :h)
88 - wspiera wielojêzyczno¶æ - przetwarza ³añcuchy z szablonu, co pozwala
89 na zbudowanie narzêdzi do t³umaczenia; kompiluje specyficzne dla
90 jêzyka szablony, dziêki czemu t³umaczenie jest robione tylko raz, a
91 nie przy ka¿dym ¿±daniu
92 - w pe³ni obs³uguje dynamiczne elementy (jak ASP.NET), dziêki czemu
93 mo¿na pobieraæ elementy do zast±pienia w czasie dzia³ania.
95 D³ugoterminowym planem rozwoju Flexy jest zintegrowanie jako backend
96 dla Future Template Package (dostêpny bêdzie wrapper BC, jako ¿e autor
97 te¿ musi tego u¿ywaæ).
99 Ta klasa ma w PEAR status: %{_status}.
103 cd %{_pearname}-%{version}
108 rm -rf $RPM_BUILD_ROOT
109 install -d $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/{Compiler/{Flexy,Standard,Regex},Element,Plugin,Token}
111 install %{_pearname}-%{version}/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}
112 install %{_pearname}-%{version}/Flexy/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy
113 install %{_pearname}-%{version}/Flexy/Compiler/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Compiler
114 install %{_pearname}-%{version}/Flexy/Compiler/Flexy/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Compiler/Flexy
115 install %{_pearname}-%{version}/Flexy/Compiler/Standard/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Compiler/Standard
116 install %{_pearname}-%{version}/Flexy/Compiler/Regex/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Compiler/Regex
117 install %{_pearname}-%{version}/Flexy/Element/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Element
118 install %{_pearname}-%{version}/Flexy/Plugin/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Plugin
119 install %{_pearname}-%{version}/Flexy/Token/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/%{_subclass}/Flexy/Token
122 rm -rf $RPM_BUILD_ROOT
125 %defattr(644,root,root,755)
126 %doc %{_pearname}-%{version}/{Flexy/example.ini,tests}
127 %{php_pear_dir}/%{_class}/%{_subclass}/Flexy
128 %{php_pear_dir}/%{_class}/%{_subclass}/Flexy.php