1 |
2
|
Manuela
|
* 1.24.0 (2016-01-25)
|
2 |
|
|
|
3 |
|
|
* adding support for the ?? operator
|
4 |
|
|
* fixed the defined test when used on a constant, a map, or a sequence
|
5 |
|
|
* undeprecated _self (should only be used to get the template name, not the template instance)
|
6 |
|
|
* fixed parsing on PHP7
|
7 |
|
|
|
8 |
|
|
* 1.23.3 (2016-01-11)
|
9 |
|
|
|
10 |
|
|
* fixed typo
|
11 |
|
|
|
12 |
|
|
* 1.23.2 (2015-01-11)
|
13 |
|
|
|
14 |
|
|
* added versions in deprecated messages
|
15 |
|
|
* made file cache tolerant for trailing (back)slashes on directory configuration
|
16 |
|
|
* deprecated unused Twig_Node_Expression_ExtensionReference class
|
17 |
|
|
|
18 |
|
|
* 1.23.1 (2015-11-05)
|
19 |
|
|
|
20 |
|
|
* fixed some exception messages which triggered PHP warnings
|
21 |
|
|
* fixed BC on Twig_Test_NodeTestCase
|
22 |
|
|
|
23 |
|
|
* 1.23.0 (2015-10-29)
|
24 |
|
|
|
25 |
|
|
* deprecated the possibility to override an extension by registering another one with the same name
|
26 |
|
|
* deprecated Twig_ExtensionInterface::getGlobals() (added Twig_Extension_GlobalsInterface for BC)
|
27 |
|
|
* deprecated Twig_ExtensionInterface::initRuntime() (added Twig_Extension_InitRuntimeInterface for BC)
|
28 |
|
|
* deprecated Twig_Environment::computeAlternatives()
|
29 |
|
|
|
30 |
|
|
* 1.22.3 (2015-10-13)
|
31 |
|
|
|
32 |
|
|
* fixed regression when using null as a cache strategy
|
33 |
|
|
* improved performance when checking template freshness
|
34 |
|
|
* fixed warnings when loaded templates do not exist
|
35 |
|
|
* fixed template class name generation to prevent possible collisions
|
36 |
|
|
* fixed logic for custom escapers to call them even on integers and null values
|
37 |
|
|
* changed template cache names to take into account the Twig C extension
|
38 |
|
|
|
39 |
|
|
* 1.22.2 (2015-09-22)
|
40 |
|
|
|
41 |
|
|
* fixed a race condition in template loading
|
42 |
|
|
|
43 |
|
|
* 1.22.1 (2015-09-15)
|
44 |
|
|
|
45 |
|
|
* fixed regression in template_from_string
|
46 |
|
|
|
47 |
|
|
* 1.22.0 (2015-09-13)
|
48 |
|
|
|
49 |
|
|
* made Twig_Test_IntegrationTestCase more flexible
|
50 |
|
|
* added an option to force PHP bytecode invalidation when writing a compiled template into the cache
|
51 |
|
|
* fixed the profiler duration for the root node
|
52 |
|
|
* changed template cache names to take into account enabled extensions
|
53 |
|
|
* deprecated Twig_Environment::clearCacheFiles(), Twig_Environment::getCacheFilename(),
|
54 |
|
|
Twig_Environment::writeCacheFile(), and Twig_Environment::getTemplateClassPrefix()
|
55 |
|
|
* added a way to override the filesystem template cache system
|
56 |
|
|
* added a way to get the original template source from Twig_Template
|
57 |
|
|
|
58 |
|
|
* 1.21.2 (2015-09-09)
|
59 |
|
|
|
60 |
|
|
* fixed variable names for the deprecation triggering code
|
61 |
|
|
* fixed escaping strategy detection based on filename
|
62 |
|
|
* added Traversable support for replace, merge, and sort
|
63 |
|
|
* deprecated support for character by character replacement for the "replace" filter
|
64 |
|
|
|
65 |
|
|
* 1.21.1 (2015-08-26)
|
66 |
|
|
|
67 |
|
|
* fixed regression when using the deprecated Twig_Test_* classes
|
68 |
|
|
|
69 |
|
|
* 1.21.0 (2015-08-24)
|
70 |
|
|
|
71 |
|
|
* added deprecation notices for deprecated features
|
72 |
|
|
* added a deprecation "framework" for filters/functions/tests and test fixtures
|
73 |
|
|
|
74 |
|
|
* 1.20.0 (2015-08-12)
|
75 |
|
|
|
76 |
|
|
* forbid access to the Twig environment from templates and internal parts of Twig_Template
|
77 |
|
|
* fixed limited RCEs when in sandbox mode
|
78 |
|
|
* deprecated Twig_Template::getEnvironment()
|
79 |
|
|
* deprecated the _self variable for usage outside of the from and import tags
|
80 |
|
|
* added Twig_BaseNodeVisitor to ease the compatibility of node visitors
|
81 |
|
|
between 1.x and 2.x
|
82 |
|
|
|
83 |
|
|
* 1.19.0 (2015-07-31)
|
84 |
|
|
|
85 |
|
|
* fixed wrong error message when including an undefined template in a child template
|
86 |
|
|
* added support for variadic filters, functions, and tests
|
87 |
|
|
* added support for extra positional arguments in macros
|
88 |
|
|
* added ignore_missing flag to the source function
|
89 |
|
|
* fixed batch filter with zero items
|
90 |
|
|
* deprecated Twig_Environment::clearTemplateCache()
|
91 |
|
|
* fixed sandbox disabling when using the include function
|
92 |
|
|
|
93 |
|
|
* 1.18.2 (2015-06-06)
|
94 |
|
|
|
95 |
|
|
* fixed template/line guessing in exceptions for nested templates
|
96 |
|
|
* optimized the number of inodes and the size of realpath cache when using the cache
|
97 |
|
|
|
98 |
|
|
* 1.18.1 (2015-04-19)
|
99 |
|
|
|
100 |
|
|
* fixed memory leaks in the C extension
|
101 |
|
|
* deprecated Twig_Loader_String
|
102 |
|
|
* fixed the slice filter when used with a SimpleXMLElement object
|
103 |
|
|
* fixed filesystem loader when trying to load non-files (like directories)
|
104 |
|
|
|
105 |
|
|
* 1.18.0 (2015-01-25)
|
106 |
|
|
|
107 |
|
|
* fixed some error messages where the line was wrong (unknown variables or argument names)
|
108 |
|
|
* added a new way to customize the main Module node (via empty nodes)
|
109 |
|
|
* added Twig_Environment::createTemplate() to create a template from a string
|
110 |
|
|
* added a profiler
|
111 |
|
|
* fixed filesystem loader cache when different file paths are used for the same template
|
112 |
|
|
|
113 |
|
|
* 1.17.0 (2015-01-14)
|
114 |
|
|
|
115 |
|
|
* added a 'filename' autoescaping strategy, which dynamically chooses the
|
116 |
|
|
autoescaping strategy for a template based on template file extension.
|
117 |
|
|
|
118 |
|
|
* 1.16.3 (2014-12-25)
|
119 |
|
|
|
120 |
|
|
* fixed regression for dynamic parent templates
|
121 |
|
|
* fixed cache management with statcache
|
122 |
|
|
* fixed a regression in the slice filter
|
123 |
|
|
|
124 |
|
|
* 1.16.2 (2014-10-17)
|
125 |
|
|
|
126 |
|
|
* fixed timezone on dates as strings
|
127 |
|
|
* fixed 2-words test names when a custom node class is not used
|
128 |
|
|
* fixed macros when using an argument named like a PHP super global (like GET or POST)
|
129 |
|
|
* fixed date_modify when working with DateTimeImmutable
|
130 |
|
|
* optimized for loops
|
131 |
|
|
* fixed multi-byte characters handling in the split filter
|
132 |
|
|
* fixed a regression in the in operator
|
133 |
|
|
* fixed a regression in the slice filter
|
134 |
|
|
|
135 |
|
|
* 1.16.1 (2014-10-10)
|
136 |
|
|
|
137 |
|
|
* improved error reporting in a sandboxed template
|
138 |
|
|
* fixed missing error file/line information under certain circumstances
|
139 |
|
|
* fixed wrong error line number in some error messages
|
140 |
|
|
* fixed the in operator to use strict comparisons
|
141 |
|
|
* sped up the slice filter
|
142 |
|
|
* fixed for mb function overload mb_substr acting different
|
143 |
|
|
* fixed the attribute() function when passing a variable for the arguments
|
144 |
|
|
|
145 |
|
|
* 1.16.0 (2014-07-05)
|
146 |
|
|
|
147 |
|
|
* changed url_encode to always encode according to RFC 3986
|
148 |
|
|
* fixed inheritance in a 'use'-hierarchy
|
149 |
|
|
* removed the __toString policy check when the sandbox is disabled
|
150 |
|
|
* fixed recursively calling blocks in templates with inheritance
|
151 |
|
|
|
152 |
|
|
* 1.15.1 (2014-02-13)
|
153 |
|
|
|
154 |
|
|
* fixed the conversion of the special '0000-00-00 00:00' date
|
155 |
|
|
* added an error message when trying to import an undefined block from a trait
|
156 |
|
|
* fixed a C extension crash when accessing defined but uninitialized property.
|
157 |
|
|
|
158 |
|
|
* 1.15.0 (2013-12-06)
|
159 |
|
|
|
160 |
|
|
* made ignoreStrictCheck in Template::getAttribute() works with __call() methods throwing BadMethodCallException
|
161 |
|
|
* added min and max functions
|
162 |
|
|
* added the round filter
|
163 |
|
|
* fixed a bug that prevented the optimizers to be enabled/disabled selectively
|
164 |
|
|
* fixed first and last filters for UTF-8 strings
|
165 |
|
|
* added a source function to include the content of a template without rendering it
|
166 |
|
|
* fixed the C extension sandbox behavior when get or set is prepend to method name
|
167 |
|
|
|
168 |
|
|
* 1.14.2 (2013-10-30)
|
169 |
|
|
|
170 |
|
|
* fixed error filename/line when an error occurs in an included file
|
171 |
|
|
* allowed operators that contain whitespaces to have more than one whitespace
|
172 |
|
|
* allowed tests to be made of 1 or 2 words (like "same as" or "divisible by")
|
173 |
|
|
|
174 |
|
|
* 1.14.1 (2013-10-15)
|
175 |
|
|
|
176 |
|
|
* made it possible to use named operators as variables
|
177 |
|
|
* fixed the possibility to have a variable named 'matches'
|
178 |
|
|
* added support for PHP 5.5 DateTimeInterface
|
179 |
|
|
|
180 |
|
|
* 1.14.0 (2013-10-03)
|
181 |
|
|
|
182 |
|
|
* fixed usage of the html_attr escaping strategy to avoid double-escaping with the html strategy
|
183 |
|
|
* added new operators: ends with, starts with, and matches
|
184 |
|
|
* fixed some compatibility issues with HHVM
|
185 |
|
|
* added a way to add custom escaping strategies
|
186 |
|
|
* fixed the C extension compilation on Windows
|
187 |
|
|
* fixed the batch filter when using a fill argument with an exact match of elements to batch
|
188 |
|
|
* fixed the filesystem loader cache when a template name exists in several namespaces
|
189 |
|
|
* fixed template_from_string when the template includes or extends other ones
|
190 |
|
|
* fixed a crash of the C extension on an edge case
|
191 |
|
|
|
192 |
|
|
* 1.13.2 (2013-08-03)
|
193 |
|
|
|
194 |
|
|
* fixed the error line number for an error occurs in and embedded template
|
195 |
|
|
* fixed crashes of the C extension on some edge cases
|
196 |
|
|
|
197 |
|
|
* 1.13.1 (2013-06-06)
|
198 |
|
|
|
199 |
|
|
* added the possibility to ignore the filesystem constructor argument in Twig_Loader_Filesystem
|
200 |
|
|
* fixed Twig_Loader_Chain::exists() for a loader which implements Twig_ExistsLoaderInterface
|
201 |
|
|
* adjusted backtrace call to reduce memory usage when an error occurs
|
202 |
|
|
* added support for object instances as the second argument of the constant test
|
203 |
|
|
* fixed the include function when used in an assignment
|
204 |
|
|
|
205 |
|
|
* 1.13.0 (2013-05-10)
|
206 |
|
|
|
207 |
|
|
* fixed getting a numeric-like item on a variable ('09' for instance)
|
208 |
|
|
* fixed getting a boolean or float key on an array, so it is consistent with PHP's array access:
|
209 |
|
|
`{{ array[false] }}` behaves the same as `echo $array[false];` (equals `$array[0]`)
|
210 |
|
|
* made the escape filter 20% faster for happy path (escaping string for html with UTF-8)
|
211 |
|
|
* changed ☃ to § in tests
|
212 |
|
|
* enforced usage of named arguments after positional ones
|
213 |
|
|
|
214 |
|
|
* 1.12.3 (2013-04-08)
|
215 |
|
|
|
216 |
|
|
* fixed a security issue in the filesystem loader where it was possible to include a template one
|
217 |
|
|
level above the configured path
|
218 |
|
|
* fixed fatal error that should be an exception when adding a filter/function/test too late
|
219 |
|
|
* added a batch filter
|
220 |
|
|
* added support for encoding an array as query string in the url_encode filter
|
221 |
|
|
|
222 |
|
|
* 1.12.2 (2013-02-09)
|
223 |
|
|
|
224 |
|
|
* fixed the timezone used by the date filter and function when the given date contains a timezone (like 2010-01-28T15:00:00+02:00)
|
225 |
|
|
* fixed globals when getGlobals is called early on
|
226 |
|
|
* added the first and last filter
|
227 |
|
|
|
228 |
|
|
* 1.12.1 (2013-01-15)
|
229 |
|
|
|
230 |
|
|
* added support for object instances as the second argument of the constant function
|
231 |
|
|
* relaxed globals management to avoid a BC break
|
232 |
|
|
* added support for {{ some_string[:2] }}
|
233 |
|
|
|
234 |
|
|
* 1.12.0 (2013-01-08)
|
235 |
|
|
|
236 |
|
|
* added verbatim as an alias for the raw tag to avoid confusion with the raw filter
|
237 |
|
|
* fixed registration of tests and functions as anonymous functions
|
238 |
|
|
* fixed globals management
|
239 |
|
|
|
240 |
|
|
* 1.12.0-RC1 (2012-12-29)
|
241 |
|
|
|
242 |
|
|
* added an include function (does the same as the include tag but in a more flexible way)
|
243 |
|
|
* added the ability to use any PHP callable to define filters, functions, and tests
|
244 |
|
|
* added a syntax error when using a loop variable that is not defined
|
245 |
|
|
* added the ability to set default values for macro arguments
|
246 |
|
|
* added support for named arguments for filters, tests, and functions
|
247 |
|
|
* moved filters/functions/tests syntax errors to the parser
|
248 |
|
|
* added support for extended ternary operator syntaxes
|
249 |
|
|
|
250 |
|
|
* 1.11.1 (2012-11-11)
|
251 |
|
|
|
252 |
|
|
* fixed debug info line numbering (was off by 2)
|
253 |
|
|
* fixed escaping when calling a macro inside another one (regression introduced in 1.9.1)
|
254 |
|
|
* optimized variable access on PHP 5.4
|
255 |
|
|
* fixed a crash of the C extension when an exception was thrown from a macro called without being imported (using _self.XXX)
|
256 |
|
|
|
257 |
|
|
* 1.11.0 (2012-11-07)
|
258 |
|
|
|
259 |
|
|
* fixed macro compilation when a variable name is a PHP reserved keyword
|
260 |
|
|
* changed the date filter behavior to always apply the default timezone, except if false is passed as the timezone
|
261 |
|
|
* fixed bitwise operator precedences
|
262 |
|
|
* added the template_from_string function
|
263 |
|
|
* fixed default timezone usage for the date function
|
264 |
|
|
* optimized the way Twig exceptions are managed (to make them faster)
|
265 |
|
|
* added Twig_ExistsLoaderInterface (implementing this interface in your loader make the chain loader much faster)
|
266 |
|
|
|
267 |
|
|
* 1.10.3 (2012-10-19)
|
268 |
|
|
|
269 |
|
|
* fixed wrong template location in some error messages
|
270 |
|
|
* reverted a BC break introduced in 1.10.2
|
271 |
|
|
* added a split filter
|
272 |
|
|
|
273 |
|
|
* 1.10.2 (2012-10-15)
|
274 |
|
|
|
275 |
|
|
* fixed macro calls on PHP 5.4
|
276 |
|
|
|
277 |
|
|
* 1.10.1 (2012-10-15)
|
278 |
|
|
|
279 |
|
|
* made a speed optimization to macro calls when imported via the "import" tag
|
280 |
|
|
* fixed C extension compilation on Windows
|
281 |
|
|
* fixed a segfault in the C extension when using DateTime objects
|
282 |
|
|
|
283 |
|
|
* 1.10.0 (2012-09-28)
|
284 |
|
|
|
285 |
|
|
* extracted functional tests framework to make it reusable for third-party extensions
|
286 |
|
|
* added namespaced templates support in Twig_Loader_Filesystem
|
287 |
|
|
* added Twig_Loader_Filesystem::prependPath()
|
288 |
|
|
* fixed an error when a token parser pass a closure as a test to the subparse() method
|
289 |
|
|
|
290 |
|
|
* 1.9.2 (2012-08-25)
|
291 |
|
|
|
292 |
|
|
* fixed the in operator for objects that contain circular references
|
293 |
|
|
* fixed the C extension when accessing a public property of an object implementing the \ArrayAccess interface
|
294 |
|
|
|
295 |
|
|
* 1.9.1 (2012-07-22)
|
296 |
|
|
|
297 |
|
|
* optimized macro calls when auto-escaping is on
|
298 |
|
|
* fixed wrong parent class for Twig_Function_Node
|
299 |
|
|
* made Twig_Loader_Chain more explicit about problems
|
300 |
|
|
|
301 |
|
|
* 1.9.0 (2012-07-13)
|
302 |
|
|
|
303 |
|
|
* made the parsing independent of the template loaders
|
304 |
|
|
* fixed exception trace when an error occurs when rendering a child template
|
305 |
|
|
* added escaping strategies for CSS, URL, and HTML attributes
|
306 |
|
|
* fixed nested embed tag calls
|
307 |
|
|
* added the date_modify filter
|
308 |
|
|
|
309 |
|
|
* 1.8.3 (2012-06-17)
|
310 |
|
|
|
311 |
|
|
* fixed paths in the filesystem loader when passing a path that ends with a slash or a backslash
|
312 |
|
|
* fixed escaping when a project defines a function named html or js
|
313 |
|
|
* fixed chmod mode to apply the umask correctly
|
314 |
|
|
|
315 |
|
|
* 1.8.2 (2012-05-30)
|
316 |
|
|
|
317 |
|
|
* added the abs filter
|
318 |
|
|
* fixed a regression when using a number in template attributes
|
319 |
|
|
* fixed compiler when mbstring.func_overload is set to 2
|
320 |
|
|
* fixed DateTimeZone support in date filter
|
321 |
|
|
|
322 |
|
|
* 1.8.1 (2012-05-17)
|
323 |
|
|
|
324 |
|
|
* fixed a regression when dealing with SimpleXMLElement instances in templates
|
325 |
|
|
* fixed "is_safe" value for the "dump" function when "html_errors" is not defined in php.ini
|
326 |
|
|
* switched to use mbstring whenever possible instead of iconv (you might need to update your encoding as mbstring and iconv encoding names sometimes differ)
|
327 |
|
|
|
328 |
|
|
* 1.8.0 (2012-05-08)
|
329 |
|
|
|
330 |
|
|
* enforced interface when adding tests, filters, functions, and node visitors from extensions
|
331 |
|
|
* fixed a side-effect of the date filter where the timezone might be changed
|
332 |
|
|
* simplified usage of the autoescape tag; the only (optional) argument is now the escaping strategy or false (with a BC layer)
|
333 |
|
|
* added a way to dynamically change the auto-escaping strategy according to the template "filename"
|
334 |
|
|
* changed the autoescape option to also accept a supported escaping strategy (for BC, true is equivalent to html)
|
335 |
|
|
* added an embed tag
|
336 |
|
|
|
337 |
|
|
* 1.7.0 (2012-04-24)
|
338 |
|
|
|
339 |
|
|
* fixed a PHP warning when using CIFS
|
340 |
|
|
* fixed template line number in some exceptions
|
341 |
|
|
* added an iterable test
|
342 |
|
|
* added an error when defining two blocks with the same name in a template
|
343 |
|
|
* added the preserves_safety option for filters
|
344 |
|
|
* fixed a PHP notice when trying to access a key on a non-object/array variable
|
345 |
|
|
* enhanced error reporting when the template file is an instance of SplFileInfo
|
346 |
|
|
* added Twig_Environment::mergeGlobals()
|
347 |
|
|
* added compilation checks to avoid misuses of the sandbox tag
|
348 |
|
|
* fixed filesystem loader freshness logic for high traffic websites
|
349 |
|
|
* fixed random function when charset is null
|
350 |
|
|
|
351 |
|
|
* 1.6.5 (2012-04-11)
|
352 |
|
|
|
353 |
|
|
* fixed a regression when a template only extends another one without defining any blocks
|
354 |
|
|
|
355 |
|
|
* 1.6.4 (2012-04-02)
|
356 |
|
|
|
357 |
|
|
* fixed PHP notice in Twig_Error::guessTemplateLine() introduced in 1.6.3
|
358 |
|
|
* fixed performance when compiling large files
|
359 |
|
|
* optimized parent template creation when the template does not use dynamic inheritance
|
360 |
|
|
|
361 |
|
|
* 1.6.3 (2012-03-22)
|
362 |
|
|
|
363 |
|
|
* fixed usage of Z_ADDREF_P for PHP 5.2 in the C extension
|
364 |
|
|
* fixed compilation of numeric values used in templates when using a locale where the decimal separator is not a dot
|
365 |
|
|
* made the strategy used to guess the real template file name and line number in exception messages much faster and more accurate
|
366 |
|
|
|
367 |
|
|
* 1.6.2 (2012-03-18)
|
368 |
|
|
|
369 |
|
|
* fixed sandbox mode when used with inheritance
|
370 |
|
|
* added preserveKeys support for the slice filter
|
371 |
|
|
* fixed the date filter when a DateTime instance is passed with a specific timezone
|
372 |
|
|
* added a trim filter
|
373 |
|
|
|
374 |
|
|
* 1.6.1 (2012-02-29)
|
375 |
|
|
|
376 |
|
|
* fixed Twig C extension
|
377 |
|
|
* removed the creation of Twig_Markup instances when not needed
|
378 |
|
|
* added a way to set the default global timezone for dates
|
379 |
|
|
* fixed the slice filter on strings when the length is not specified
|
380 |
|
|
* fixed the creation of the cache directory in case of a race condition
|
381 |
|
|
|
382 |
|
|
* 1.6.0 (2012-02-04)
|
383 |
|
|
|
384 |
|
|
* fixed raw blocks when used with the whitespace trim option
|
385 |
|
|
* made a speed optimization to macro calls when imported via the "from" tag
|
386 |
|
|
* fixed globals, parsers, visitors, filters, tests, and functions management in Twig_Environment when a new one or new extension is added
|
387 |
|
|
* fixed the attribute function when passing arguments
|
388 |
|
|
* added slice notation support for the [] operator (syntactic sugar for the slice operator)
|
389 |
|
|
* added a slice filter
|
390 |
|
|
* added string support for the reverse filter
|
391 |
|
|
* fixed the empty test and the length filter for Twig_Markup instances
|
392 |
|
|
* added a date function to ease date comparison
|
393 |
|
|
* fixed unary operators precedence
|
394 |
|
|
* added recursive parsing support in the parser
|
395 |
|
|
* added string and integer handling for the random function
|
396 |
|
|
|
397 |
|
|
* 1.5.1 (2012-01-05)
|
398 |
|
|
|
399 |
|
|
* fixed a regression when parsing strings
|
400 |
|
|
|
401 |
|
|
* 1.5.0 (2012-01-04)
|
402 |
|
|
|
403 |
|
|
* added Traversable objects support for the join filter
|
404 |
|
|
|
405 |
|
|
* 1.5.0-RC2 (2011-12-30)
|
406 |
|
|
|
407 |
|
|
* added a way to set the default global date interval format
|
408 |
|
|
* fixed the date filter for DateInterval instances (setTimezone() does not exist for them)
|
409 |
|
|
* refactored Twig_Template::display() to ease its extension
|
410 |
|
|
* added a number_format filter
|
411 |
|
|
|
412 |
|
|
* 1.5.0-RC1 (2011-12-26)
|
413 |
|
|
|
414 |
|
|
* removed the need to quote hash keys
|
415 |
|
|
* allowed hash keys to be any expression
|
416 |
|
|
* added a do tag
|
417 |
|
|
* added a flush tag
|
418 |
|
|
* added support for dynamically named filters and functions
|
419 |
|
|
* added a dump function to help debugging templates
|
420 |
|
|
* added a nl2br filter
|
421 |
|
|
* added a random function
|
422 |
|
|
* added a way to change the default format for the date filter
|
423 |
|
|
* fixed the lexer when an operator ending with a letter ends a line
|
424 |
|
|
* added string interpolation support
|
425 |
|
|
* enhanced exceptions for unknown filters, functions, tests, and tags
|
426 |
|
|
|
427 |
|
|
* 1.4.0 (2011-12-07)
|
428 |
|
|
|
429 |
|
|
* fixed lexer when using big numbers (> PHP_INT_MAX)
|
430 |
|
|
* added missing preserveKeys argument to the reverse filter
|
431 |
|
|
* fixed macros containing filter tag calls
|
432 |
|
|
|
433 |
|
|
* 1.4.0-RC2 (2011-11-27)
|
434 |
|
|
|
435 |
|
|
* removed usage of Reflection in Twig_Template::getAttribute()
|
436 |
|
|
* added a C extension that can optionally replace Twig_Template::getAttribute()
|
437 |
|
|
* added negative timestamp support to the date filter
|
438 |
|
|
|
439 |
|
|
* 1.4.0-RC1 (2011-11-20)
|
440 |
|
|
|
441 |
|
|
* optimized variable access when using PHP 5.4
|
442 |
|
|
* changed the precedence of the .. operator to be more consistent with languages that implements such a feature like Ruby
|
443 |
|
|
* added an Exception to Twig_Loader_Array::isFresh() method when the template does not exist to be consistent with other loaders
|
444 |
|
|
* added Twig_Function_Node to allow more complex functions to have their own Node class
|
445 |
|
|
* added Twig_Filter_Node to allow more complex filters to have their own Node class
|
446 |
|
|
* added Twig_Test_Node to allow more complex tests to have their own Node class
|
447 |
|
|
* added a better error message when a template is empty but contain a BOM
|
448 |
|
|
* fixed "in" operator for empty strings
|
449 |
|
|
* fixed the "defined" test and the "default" filter (now works with more than one call (foo.bar.foo) and for both values of the strict_variables option)
|
450 |
|
|
* changed the way extensions are loaded (addFilter/addFunction/addGlobal/addTest/addNodeVisitor/addTokenParser/addExtension can now be called in any order)
|
451 |
|
|
* added Twig_Environment::display()
|
452 |
|
|
* made the escape filter smarter when the encoding is not supported by PHP
|
453 |
|
|
* added a convert_encoding filter
|
454 |
|
|
* moved all node manipulations outside the compile() Node method
|
455 |
|
|
* made several speed optimizations
|
456 |
|
|
|
457 |
|
|
* 1.3.0 (2011-10-08)
|
458 |
|
|
|
459 |
|
|
no changes
|
460 |
|
|
|
461 |
|
|
* 1.3.0-RC1 (2011-10-04)
|
462 |
|
|
|
463 |
|
|
* added an optimization for the parent() function
|
464 |
|
|
* added cache reloading when auto_reload is true and an extension has been modified
|
465 |
|
|
* added the possibility to force the escaping of a string already marked as safe (instance of Twig_Markup)
|
466 |
|
|
* allowed empty templates to be used as traits
|
467 |
|
|
* added traits support for the "parent" function
|
468 |
|
|
|
469 |
|
|
* 1.2.0 (2011-09-13)
|
470 |
|
|
|
471 |
|
|
no changes
|
472 |
|
|
|
473 |
|
|
* 1.2.0-RC1 (2011-09-10)
|
474 |
|
|
|
475 |
|
|
* enhanced the exception when a tag remains unclosed
|
476 |
|
|
* added support for empty Countable objects for the "empty" test
|
477 |
|
|
* fixed algorithm that determines if a template using inheritance is valid (no output between block definitions)
|
478 |
|
|
* added better support for encoding problems when escaping a string (available as of PHP 5.4)
|
479 |
|
|
* added a way to ignore a missing template when using the "include" tag ({% include "foo" ignore missing %})
|
480 |
|
|
* added support for an array of templates to the "include" and "extends" tags ({% include ['foo', 'bar'] %})
|
481 |
|
|
* added support for bitwise operators in expressions
|
482 |
|
|
* added the "attribute" function to allow getting dynamic attributes on variables
|
483 |
|
|
* added Twig_Loader_Chain
|
484 |
|
|
* added Twig_Loader_Array::setTemplate()
|
485 |
|
|
* added an optimization for the set tag when used to capture a large chunk of static text
|
486 |
|
|
* changed name regex to match PHP one "[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" (works for blocks, tags, functions, filters, and macros)
|
487 |
|
|
* removed the possibility to use the "extends" tag from a block
|
488 |
|
|
* added "if" modifier support to "for" loops
|
489 |
|
|
|
490 |
|
|
* 1.1.2 (2011-07-30)
|
491 |
|
|
|
492 |
|
|
* fixed json_encode filter on PHP 5.2
|
493 |
|
|
* fixed regression introduced in 1.1.1 ({{ block(foo|lower) }})
|
494 |
|
|
* fixed inheritance when using conditional parents
|
495 |
|
|
* fixed compilation of templates when the body of a child template is not empty
|
496 |
|
|
* fixed output when a macro throws an exception
|
497 |
|
|
* fixed a parsing problem when a large chunk of text is enclosed in a comment tag
|
498 |
|
|
* added PHPDoc for all Token parsers and Core extension functions
|
499 |
|
|
|
500 |
|
|
* 1.1.1 (2011-07-17)
|
501 |
|
|
|
502 |
|
|
* added a performance optimization in the Optimizer (also helps to lower the number of nested level calls)
|
503 |
|
|
* made some performance improvement for some edge cases
|
504 |
|
|
|
505 |
|
|
* 1.1.0 (2011-06-28)
|
506 |
|
|
|
507 |
|
|
* fixed json_encode filter
|
508 |
|
|
|
509 |
|
|
* 1.1.0-RC3 (2011-06-24)
|
510 |
|
|
|
511 |
|
|
* fixed method case-sensitivity when using the sandbox mode
|
512 |
|
|
* added timezone support for the date filter
|
513 |
|
|
* fixed possible security problems with NUL bytes
|
514 |
|
|
|
515 |
|
|
* 1.1.0-RC2 (2011-06-16)
|
516 |
|
|
|
517 |
|
|
* added an exception when the template passed to "use" is not a string
|
518 |
|
|
* made 'a.b is defined' not throw an exception if a is not defined (in strict mode)
|
519 |
|
|
* added {% line \d+ %} directive
|
520 |
|
|
|
521 |
|
|
* 1.1.0-RC1 (2011-05-28)
|
522 |
|
|
|
523 |
|
|
Flush your cache after upgrading.
|
524 |
|
|
|
525 |
|
|
* fixed date filter when using a timestamp
|
526 |
|
|
* fixed the defined test for some cases
|
527 |
|
|
* fixed a parsing problem when a large chunk of text is enclosed in a raw tag
|
528 |
|
|
* added support for horizontal reuse of template blocks (see docs for more information)
|
529 |
|
|
* added whitespace control modifier to all tags (see docs for more information)
|
530 |
|
|
* added null as an alias for none (the null test is also an alias for the none test now)
|
531 |
|
|
* made TRUE, FALSE, NONE equivalent to their lowercase counterparts
|
532 |
|
|
* wrapped all compilation and runtime exceptions with Twig_Error_Runtime and added logic to guess the template name and line
|
533 |
|
|
* moved display() method to Twig_Template (generated templates should now use doDisplay() instead)
|
534 |
|
|
|
535 |
|
|
* 1.0.0 (2011-03-27)
|
536 |
|
|
|
537 |
|
|
* fixed output when using mbstring
|
538 |
|
|
* fixed duplicate call of methods when using the sandbox
|
539 |
|
|
* made the charset configurable for the escape filter
|
540 |
|
|
|
541 |
|
|
* 1.0.0-RC2 (2011-02-21)
|
542 |
|
|
|
543 |
|
|
* changed the way {% set %} works when capturing (the content is now marked as safe)
|
544 |
|
|
* added support for macro name in the endmacro tag
|
545 |
|
|
* make Twig_Error compatible with PHP 5.3.0 >
|
546 |
|
|
* fixed an infinite loop on some Windows configurations
|
547 |
|
|
* fixed the "length" filter for numbers
|
548 |
|
|
* fixed Template::getAttribute() as properties in PHP are case sensitive
|
549 |
|
|
* removed coupling between Twig_Node and Twig_Template
|
550 |
|
|
* fixed the ternary operator precedence rule
|
551 |
|
|
|
552 |
|
|
* 1.0.0-RC1 (2011-01-09)
|
553 |
|
|
|
554 |
|
|
Backward incompatibilities:
|
555 |
|
|
|
556 |
|
|
* the "items" filter, which has been deprecated for quite a long time now, has been removed
|
557 |
|
|
* the "range" filter has been converted to a function: 0|range(10) -> range(0, 10)
|
558 |
|
|
* the "constant" filter has been converted to a function: {{ some_date|date('DATE_W3C'|constant) }} -> {{ some_date|date(constant('DATE_W3C')) }}
|
559 |
|
|
* the "cycle" filter has been converted to a function: {{ ['odd', 'even']|cycle(i) }} -> {{ cycle(['odd', 'even'], i) }}
|
560 |
|
|
* the "for" tag does not support "joined by" anymore
|
561 |
|
|
* the "autoescape" first argument is now "true"/"false" (instead of "on"/"off")
|
562 |
|
|
* the "parent" tag has been replaced by a "parent" function ({{ parent() }} instead of {% parent %})
|
563 |
|
|
* the "display" tag has been replaced by a "block" function ({{ block('title') }} instead of {% display title %})
|
564 |
|
|
* removed the grammar and simple token parser (moved to the Twig Extensions repository)
|
565 |
|
|
|
566 |
|
|
Changes:
|
567 |
|
|
|
568 |
|
|
* added "needs_context" option for filters and functions (the context is then passed as a first argument)
|
569 |
|
|
* added global variables support
|
570 |
|
|
* made macros return their value instead of echoing directly (fixes calling a macro in sandbox mode)
|
571 |
|
|
* added the "from" tag to import macros as functions
|
572 |
|
|
* added support for functions (a function is just syntactic sugar for a getAttribute() call)
|
573 |
|
|
* made macros callable when sandbox mode is enabled
|
574 |
|
|
* added an exception when a macro uses a reserved name
|
575 |
|
|
* the "default" filter now uses the "empty" test instead of just checking for null
|
576 |
|
|
* added the "empty" test
|
577 |
|
|
|
578 |
|
|
* 0.9.10 (2010-12-16)
|
579 |
|
|
|
580 |
|
|
Backward incompatibilities:
|
581 |
|
|
|
582 |
|
|
* The Escaper extension is enabled by default, which means that all displayed
|
583 |
|
|
variables are now automatically escaped. You can revert to the previous
|
584 |
|
|
behavior by removing the extension via $env->removeExtension('escaper')
|
585 |
|
|
or just set the 'autoescape' option to 'false'.
|
586 |
|
|
* removed the "without loop" attribute for the "for" tag (not needed anymore
|
587 |
|
|
as the Optimizer take care of that for most cases)
|
588 |
|
|
* arrays and hashes have now a different syntax
|
589 |
|
|
* arrays keep the same syntax with square brackets: [1, 2]
|
590 |
|
|
* hashes now use curly braces (["a": "b"] should now be written as {"a": "b"})
|
591 |
|
|
* support for "arrays with keys" and "hashes without keys" is not supported anymore ([1, "foo": "bar"] or {"foo": "bar", 1})
|
592 |
|
|
* the i18n extension is now part of the Twig Extensions repository
|
593 |
|
|
|
594 |
|
|
Changes:
|
595 |
|
|
|
596 |
|
|
* added the merge filter
|
597 |
|
|
* removed 'is_escaper' option for filters (a left over from the previous version) -- you must use 'is_safe' now instead
|
598 |
|
|
* fixed usage of operators as method names (like is, in, and not)
|
599 |
|
|
* changed the order of execution for node visitors
|
600 |
|
|
* fixed default() filter behavior when used with strict_variables set to on
|
601 |
|
|
* fixed filesystem loader compatibility with PHAR files
|
602 |
|
|
* enhanced error messages when an unexpected token is parsed in an expression
|
603 |
|
|
* fixed filename not being added to syntax error messages
|
604 |
|
|
* added the autoescape option to enable/disable autoescaping
|
605 |
|
|
* removed the newline after a comment (mimics PHP behavior)
|
606 |
|
|
* added a syntax error exception when parent block is used on a template that does not extend another one
|
607 |
|
|
* made the Escaper extension enabled by default
|
608 |
|
|
* fixed sandbox extension when used with auto output escaping
|
609 |
|
|
* fixed escaper when wrapping a Twig_Node_Print (the original class must be preserved)
|
610 |
|
|
* added an Optimizer extension (enabled by default; optimizes "for" loops and "raw" filters)
|
611 |
|
|
* added priority to node visitors
|
612 |
|
|
|
613 |
|
|
* 0.9.9 (2010-11-28)
|
614 |
|
|
|
615 |
|
|
Backward incompatibilities:
|
616 |
|
|
* the self special variable has been renamed to _self
|
617 |
|
|
* the odd and even filters are now tests:
|
618 |
|
|
{{ foo|odd }} must now be written {{ foo is odd }}
|
619 |
|
|
* the "safe" filter has been renamed to "raw"
|
620 |
|
|
* in Node classes,
|
621 |
|
|
sub-nodes are now accessed via getNode() (instead of property access)
|
622 |
|
|
attributes via getAttribute() (instead of array access)
|
623 |
|
|
* the urlencode filter had been renamed to url_encode
|
624 |
|
|
* the include tag now merges the passed variables with the current context by default
|
625 |
|
|
(the old behavior is still possible by adding the "only" keyword)
|
626 |
|
|
* moved Exceptions to Twig_Error_* (Twig_SyntaxError/Twig_RuntimeError are now Twig_Error_Syntax/Twig_Error_Runtime)
|
627 |
|
|
* removed support for {{ 1 < i < 3 }} (use {{ i > 1 and i < 3 }} instead)
|
628 |
|
|
* the "in" filter has been removed ({{ a|in(b) }} should now be written {{ a in b }})
|
629 |
|
|
|
630 |
|
|
Changes:
|
631 |
|
|
* added file and line to Twig_Error_Runtime exceptions thrown from Twig_Template
|
632 |
|
|
* changed trans tag to accept any variable for the plural count
|
633 |
|
|
* fixed sandbox mode (__toString() method check was not enforced if called implicitly from complex statements)
|
634 |
|
|
* added the ** (power) operator
|
635 |
|
|
* changed the algorithm used for parsing expressions
|
636 |
|
|
* added the spaceless tag
|
637 |
|
|
* removed trim_blocks option
|
638 |
|
|
* added support for is*() methods for attributes (foo.bar now looks for foo->getBar() or foo->isBar())
|
639 |
|
|
* changed all exceptions to extend Twig_Error
|
640 |
|
|
* fixed unary expressions ({{ not(1 or 0) }})
|
641 |
|
|
* fixed child templates (with an extend tag) that uses one or more imports
|
642 |
|
|
* added support for {{ 1 not in [2, 3] }} (more readable than the current {{ not (1 in [2, 3]) }})
|
643 |
|
|
* escaping has been rewritten
|
644 |
|
|
* the implementation of template inheritance has been rewritten
|
645 |
|
|
(blocks can now be called individually and still work with inheritance)
|
646 |
|
|
* fixed error handling for if tag when a syntax error occurs within a subparse process
|
647 |
|
|
* added a way to implement custom logic for resolving token parsers given a tag name
|
648 |
|
|
* fixed js escaper to be stricter (now uses a whilelist-based js escaper)
|
649 |
|
|
* added the following filers: "constant", "trans", "replace", "json_encode"
|
650 |
|
|
* added a "constant" test
|
651 |
|
|
* fixed objects with __toString() not being autoescaped
|
652 |
|
|
* fixed subscript expressions when calling __call() (methods now keep the case)
|
653 |
|
|
* added "test" feature (accessible via the "is" operator)
|
654 |
|
|
* removed the debug tag (should be done in an extension)
|
655 |
|
|
* fixed trans tag when no vars are used in plural form
|
656 |
|
|
* fixed race condition when writing template cache
|
657 |
|
|
* added the special _charset variable to reference the current charset
|
658 |
|
|
* added the special _context variable to reference the current context
|
659 |
|
|
* renamed self to _self (to avoid conflict)
|
660 |
|
|
* fixed Twig_Template::getAttribute() for protected properties
|
661 |
|
|
|
662 |
|
|
* 0.9.8 (2010-06-28)
|
663 |
|
|
|
664 |
|
|
Backward incompatibilities:
|
665 |
|
|
* the trans tag plural count is now attached to the plural tag:
|
666 |
|
|
old: `{% trans count %}...{% plural %}...{% endtrans %}`
|
667 |
|
|
new: `{% trans %}...{% plural count %}...{% endtrans %}`
|
668 |
|
|
|
669 |
|
|
* added a way to translate strings coming from a variable ({% trans var %})
|
670 |
|
|
* fixed trans tag when used with the Escaper extension
|
671 |
|
|
* fixed default cache umask
|
672 |
|
|
* removed Twig_Template instances from the debug tag output
|
673 |
|
|
* fixed objects with __isset() defined
|
674 |
|
|
* fixed set tag when used with a capture
|
675 |
|
|
* fixed type hinting for Twig_Environment::addFilter() method
|
676 |
|
|
|
677 |
|
|
* 0.9.7 (2010-06-12)
|
678 |
|
|
|
679 |
|
|
Backward incompatibilities:
|
680 |
|
|
* changed 'as' to '=' for the set tag ({% set title as "Title" %} must now be {% set title = "Title" %})
|
681 |
|
|
* removed the sandboxed attribute of the include tag (use the new sandbox tag instead)
|
682 |
|
|
* refactored the Node system (if you have custom nodes, you will have to update them to use the new API)
|
683 |
|
|
|
684 |
|
|
* added self as a special variable that refers to the current template (useful for importing macros from the current template)
|
685 |
|
|
* added Twig_Template instance support to the include tag
|
686 |
|
|
* added support for dynamic and conditional inheritance ({% extends some_var %} and {% extends standalone ? "minimum" : "base" %})
|
687 |
|
|
* added a grammar sub-framework to ease the creation of custom tags
|
688 |
|
|
* fixed the for tag for large arrays (some loop variables are now only available for arrays and objects that implement the Countable interface)
|
689 |
|
|
* removed the Twig_Resource::resolveMissingFilter() method
|
690 |
|
|
* fixed the filter tag which did not apply filtering to included files
|
691 |
|
|
* added a bunch of unit tests
|
692 |
|
|
* added a bunch of phpdoc
|
693 |
|
|
* added a sandbox tag in the sandbox extension
|
694 |
|
|
* changed the date filter to support any date format supported by DateTime
|
695 |
|
|
* added strict_variable setting to throw an exception when an invalid variable is used in a template (disabled by default)
|
696 |
|
|
* added the lexer, parser, and compiler as arguments to the Twig_Environment constructor
|
697 |
|
|
* changed the cache option to only accepts an explicit path to a cache directory or false
|
698 |
|
|
* added a way to add token parsers, filters, and visitors without creating an extension
|
699 |
|
|
* added three interfaces: Twig_NodeInterface, Twig_TokenParserInterface, and Twig_FilterInterface
|
700 |
|
|
* changed the generated code to match the new coding standards
|
701 |
|
|
* fixed sandbox mode (__toString() method check was not enforced if called implicitly from a simple statement like {{ article }})
|
702 |
|
|
* added an exception when a child template has a non-empty body (as it is always ignored when rendering)
|
703 |
|
|
|
704 |
|
|
* 0.9.6 (2010-05-12)
|
705 |
|
|
|
706 |
|
|
* fixed variables defined outside a loop and for which the value changes in a for loop
|
707 |
|
|
* fixed the test suite for PHP 5.2 and older versions of PHPUnit
|
708 |
|
|
* added support for __call() in expression resolution
|
709 |
|
|
* fixed node visiting for macros (macros are now visited by visitors as any other node)
|
710 |
|
|
* fixed nested block definitions with a parent call (rarely useful but nonetheless supported now)
|
711 |
|
|
* added the cycle filter
|
712 |
|
|
* fixed the Lexer when mbstring.func_overload is used with an mbstring.internal_encoding different from ASCII
|
713 |
|
|
* added a long-syntax for the set tag ({% set foo %}...{% endset %})
|
714 |
|
|
* unit tests are now powered by PHPUnit
|
715 |
|
|
* added support for gettext via the `i18n` extension
|
716 |
|
|
* fixed twig_capitalize_string_filter() and fixed twig_length_filter() when used with UTF-8 values
|
717 |
|
|
* added a more useful exception if an if tag is not closed properly
|
718 |
|
|
* added support for escaping strategy in the autoescape tag
|
719 |
|
|
* fixed lexer when a template has a big chunk of text between/in a block
|
720 |
|
|
|
721 |
|
|
* 0.9.5 (2010-01-20)
|
722 |
|
|
|
723 |
|
|
As for any new release, don't forget to remove all cached templates after
|
724 |
|
|
upgrading.
|
725 |
|
|
|
726 |
|
|
If you have defined custom filters, you MUST upgrade them for this release. To
|
727 |
|
|
upgrade, replace "array" with "new Twig_Filter_Function", and replace the
|
728 |
|
|
environment constant by the "needs_environment" option:
|
729 |
|
|
|
730 |
|
|
// before
|
731 |
|
|
'even' => array('twig_is_even_filter', false),
|
732 |
|
|
'escape' => array('twig_escape_filter', true),
|
733 |
|
|
|
734 |
|
|
// after
|
735 |
|
|
'even' => new Twig_Filter_Function('twig_is_even_filter'),
|
736 |
|
|
'escape' => new Twig_Filter_Function('twig_escape_filter', array('needs_environment' => true)),
|
737 |
|
|
|
738 |
|
|
If you have created NodeTransformer classes, you will need to upgrade them to
|
739 |
|
|
the new interface (please note that the interface is not yet considered
|
740 |
|
|
stable).
|
741 |
|
|
|
742 |
|
|
* fixed list nodes that did not extend the Twig_NodeListInterface
|
743 |
|
|
* added the "without loop" option to the for tag (it disables the generation of the loop variable)
|
744 |
|
|
* refactored node transformers to node visitors
|
745 |
|
|
* fixed automatic-escaping for blocks
|
746 |
|
|
* added a way to specify variables to pass to an included template
|
747 |
|
|
* changed the automatic-escaping rules to be more sensible and more configurable in custom filters (the documentation lists all the rules)
|
748 |
|
|
* improved the filter system to allow object methods to be used as filters
|
749 |
|
|
* changed the Array and String loaders to actually make use of the cache mechanism
|
750 |
|
|
* included the default filter function definitions in the extension class files directly (Core, Escaper)
|
751 |
|
|
* added the // operator (like the floor() PHP function)
|
752 |
|
|
* added the .. operator (as a syntactic sugar for the range filter when the step is 1)
|
753 |
|
|
* added the in operator (as a syntactic sugar for the in filter)
|
754 |
|
|
* added the following filters in the Core extension: in, range
|
755 |
|
|
* added support for arrays (same behavior as in PHP, a mix between lists and dictionaries, arrays and hashes)
|
756 |
|
|
* enhanced some error messages to provide better feedback in case of parsing errors
|
757 |
|
|
|
758 |
|
|
* 0.9.4 (2009-12-02)
|
759 |
|
|
|
760 |
|
|
If you have custom loaders, you MUST upgrade them for this release: The
|
761 |
|
|
Twig_Loader base class has been removed, and the Twig_LoaderInterface has also
|
762 |
|
|
been changed (see the source code for more information or the documentation).
|
763 |
|
|
|
764 |
|
|
* added support for DateTime instances for the date filter
|
765 |
|
|
* fixed loop.last when the array only has one item
|
766 |
|
|
* made it possible to insert newlines in tag and variable blocks
|
767 |
|
|
* fixed a bug when a literal '\n' were present in a template text
|
768 |
|
|
* fixed bug when the filename of a template contains */
|
769 |
|
|
* refactored loaders
|
770 |
|
|
|
771 |
|
|
* 0.9.3 (2009-11-11)
|
772 |
|
|
|
773 |
|
|
This release is NOT backward compatible with the previous releases.
|
774 |
|
|
|
775 |
|
|
The loaders do not take the cache and autoReload arguments anymore. Instead,
|
776 |
|
|
the Twig_Environment class has two new options: cache and auto_reload.
|
777 |
|
|
Upgrading your code means changing this kind of code:
|
778 |
|
|
|
779 |
|
|
$loader = new Twig_Loader_Filesystem('/path/to/templates', '/path/to/compilation_cache', true);
|
780 |
|
|
$twig = new Twig_Environment($loader);
|
781 |
|
|
|
782 |
|
|
to something like this:
|
783 |
|
|
|
784 |
|
|
$loader = new Twig_Loader_Filesystem('/path/to/templates');
|
785 |
|
|
$twig = new Twig_Environment($loader, array(
|
786 |
|
|
'cache' => '/path/to/compilation_cache',
|
787 |
|
|
'auto_reload' => true,
|
788 |
|
|
));
|
789 |
|
|
|
790 |
|
|
* deprecated the "items" filter as it is not needed anymore
|
791 |
|
|
* made cache and auto_reload options of Twig_Environment instead of arguments of Twig_Loader
|
792 |
|
|
* optimized template loading speed
|
793 |
|
|
* removed output when an error occurs in a template and render() is used
|
794 |
|
|
* made major speed improvements for loops (up to 300% on even the smallest loops)
|
795 |
|
|
* added properties as part of the sandbox mode
|
796 |
|
|
* added public properties support (obj.item can now be the item property on the obj object)
|
797 |
|
|
* extended set tag to support expression as value ({% set foo as 'foo' ~ 'bar' %} )
|
798 |
|
|
* fixed bug when \ was used in HTML
|
799 |
|
|
|
800 |
|
|
* 0.9.2 (2009-10-29)
|
801 |
|
|
|
802 |
|
|
* made some speed optimizations
|
803 |
|
|
* changed the cache extension to .php
|
804 |
|
|
* added a js escaping strategy
|
805 |
|
|
* added support for short block tag
|
806 |
|
|
* changed the filter tag to allow chained filters
|
807 |
|
|
* made lexer more flexible as you can now change the default delimiters
|
808 |
|
|
* added set tag
|
809 |
|
|
* changed default directory permission when cache dir does not exist (more secure)
|
810 |
|
|
* added macro support
|
811 |
|
|
* changed filters first optional argument to be a Twig_Environment instance instead of a Twig_Template instance
|
812 |
|
|
* made Twig_Autoloader::autoload() a static method
|
813 |
|
|
* avoid writing template file if an error occurs
|
814 |
|
|
* added $ escaping when outputting raw strings
|
815 |
|
|
* enhanced some error messages to ease debugging
|
816 |
|
|
* fixed empty cache files when the template contains an error
|
817 |
|
|
|
818 |
|
|
* 0.9.1 (2009-10-14)
|
819 |
|
|
|
820 |
|
|
* fixed a bug in PHP 5.2.6
|
821 |
|
|
* fixed numbers with one than one decimal
|
822 |
|
|
* added support for method calls with arguments ({{ foo.bar('a', 43) }})
|
823 |
|
|
* made small speed optimizations
|
824 |
|
|
* made minor tweaks to allow better extensibility and flexibility
|
825 |
|
|
|
826 |
|
|
* 0.9.0 (2009-10-12)
|
827 |
|
|
|
828 |
|
|
* Initial release
|