mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-21 15:48:42 +00:00
156 lines
7.8 KiB
Plaintext
156 lines
7.8 KiB
Plaintext
* 0.9.8
|
|
|
|
|
|
* 0.9.7 (2010-06-12)
|
|
|
|
Backward incompatibilities:
|
|
* changed 'as' to '=' for the set tag ({% set title as "Title" %} must now be {% set title = "Title" %})
|
|
* removed the sandboxed attribute of the include tag (use the new sandbox tag instead)
|
|
* refactored the Node system (if you have custom nodes, you will have to update them to use the new API)
|
|
|
|
* added self as a special variable that refers to the current template (useful for importing macros from the current template)
|
|
* added Twig_Template instance support to the include tag
|
|
* added support for dynamic and conditional inheritance ({% extends some_var %} and {% extends standalone ? "minimum" : "base" %})
|
|
* added a grammar sub-framework to ease the creation of custom tags
|
|
* fixed the for tag for large arrays (some loop variables are now only available for arrays and objects that implement the Countable interface)
|
|
* removed the Twig_Resource::resolveMissingFilter() method
|
|
* fixed the filter tag which did not apply filtering to included files
|
|
* added a bunch of unit tests
|
|
* added a bunch of phpdoc
|
|
* added a sandbox tag in the sandbox extension
|
|
* changed the date filter to support any date format supported by DateTime
|
|
* added strict_variable setting to throw an exception when an invalid variable is used in a template (disabled by default)
|
|
* added the lexer, parser, and compiler as arguments to the Twig_Environment constructor
|
|
* changed the cache option to only accepts an explicit path to a cache directory or false
|
|
* added a way to add token parsers, filters, and visitors without creating an extension
|
|
* added three interfaces: Twig_NodeInterface, Twig_TokenParserInterface, and Twig_FilterInterface
|
|
* changed the generated code to match the new coding standards
|
|
* fixed sandbox mode (__toString() method check was not enforced if called implicitly from a simple statement like {{ article }})
|
|
* added an exception when a child template has a non-empty body (as it is always ignored when rendering)
|
|
|
|
* 0.9.6 (2010-05-12)
|
|
|
|
* fixed variables defined outside a loop and for which the value changes in a for loop
|
|
* fixed the test suite for PHP 5.2 and older versions of PHPUnit
|
|
* added support for __call() in expression resolution
|
|
* fixed node visiting for macros (macros are now visited by visitors as any other node)
|
|
* fixed nested block definitions with a parent call (rarely useful but nonetheless supported now)
|
|
* added the cycle filter
|
|
* fixed the Lexer when mbstring.func_overload is used with an mbstring.internal_encoding different from ASCII
|
|
* added a long-syntax for the set tag ({% set foo %}...{% endset %})
|
|
* unit tests are now powered by PHPUnit
|
|
* added support for gettext via the `i18n` extension
|
|
* fixed twig_capitalize_string_filter() and fixed twig_length_filter() when used with UTF-8 values
|
|
* added a more useful exception if an if tag is not closed properly
|
|
* added support for escaping strategy in the autoescape tag
|
|
* fixed lexer when a template has a big chunk of text between/in a block
|
|
|
|
* 0.9.5 (2010-01-20)
|
|
|
|
As for any new release, don't forget to remove all cached templates after
|
|
upgrading.
|
|
|
|
If you have defined custom filters, you MUST upgrade them for this release. To
|
|
upgrade, replace "array" with "new Twig_Filter_Function", and replace the
|
|
environment constant by the "needs_environment" option:
|
|
|
|
// before
|
|
'even' => array('twig_is_even_filter', false),
|
|
'escape' => array('twig_escape_filter', true),
|
|
|
|
// after
|
|
'even' => new Twig_Filter_Function('twig_is_even_filter'),
|
|
'escape' => new Twig_Filter_Function('twig_escape_filter', array('needs_environment' => true)),
|
|
|
|
If you have created NodeTransformer classes, you will need to upgrade them to
|
|
the new interface (please note that the interface is not yet considered
|
|
stable).
|
|
|
|
* fixed list nodes that did not extend the Twig_NodeListInterface
|
|
* added the "without loop" option to the for tag (it disables the generation of the loop variable)
|
|
* refactored node transformers to node visitors
|
|
* fixed automatic-escaping for blocks
|
|
* added a way to specify variables to pass to an included template
|
|
* changed the automatic-escaping rules to be more sensible and more configurable in custom filters (the documentation lists all the rules)
|
|
* improved the filter system to allow object methods to be used as filters
|
|
* changed the Array and String loaders to actually make use of the cache mechanism
|
|
* included the default filter function definitions in the extension class files directly (Core, Escaper)
|
|
* added the // operator (like the floor() PHP function)
|
|
* added the .. operator (as a syntactic sugar for the range filter when the step is 1)
|
|
* added the in operator (as a syntactic sugar for the in filter)
|
|
* added the following filters in the Core extension: in, range
|
|
* added support for arrays (same behavior as in PHP, a mix between lists and dictionaries, arrays and hashes)
|
|
* enhanced some error messages to provide better feedback in case of parsing errors
|
|
|
|
* 0.9.4 (2009-12-02)
|
|
|
|
If you have custom loaders, you MUST upgrade them for this release: The
|
|
Twig_Loader base class has been removed, and the Twig_LoaderInterface has also
|
|
been changed (see the source code for more information or the documentation).
|
|
|
|
* added support for DateTime instances for the date filter
|
|
* fixed loop.last when the array only has one item
|
|
* made it possible to insert newlines in tag and variable blocks
|
|
* fixed a bug when a literal '\n' were present in a template text
|
|
* fixed bug when the filename of a template contains */
|
|
* refactored loaders
|
|
|
|
* 0.9.3 (2009-11-11)
|
|
|
|
This release is NOT backward compatible with the previous releases.
|
|
|
|
The loaders do not take the cache and autoReload arguments anymore. Instead,
|
|
the Twig_Environment class has two new options: cache and auto_reload.
|
|
Upgrading your code means changing this kind of code:
|
|
|
|
$loader = new Twig_Loader_Filesystem('/path/to/templates', '/path/to/compilation_cache', true);
|
|
$twig = new Twig_Environment($loader);
|
|
|
|
to something like this:
|
|
|
|
$loader = new Twig_Loader_Filesystem('/path/to/templates');
|
|
$twig = new Twig_Environment($loader, array(
|
|
'cache' => '/path/to/compilation_cache',
|
|
'auto_reload' => true,
|
|
));
|
|
|
|
* deprecated the "items" filter as it is not needed anymore
|
|
* made cache and auto_reload options of Twig_Environment instead of arguments of Twig_Loader
|
|
* optimized template loading speed
|
|
* removed output when an error occurs in a template and render() is used
|
|
* made major speed improvements for loops (up to 300% on even the smallest loops)
|
|
* added properties as part of the sandbox mode
|
|
* added public properties support (obj.item can now be the item property on the obj object)
|
|
* extended set tag to support expression as value ({% set foo as 'foo' ~ 'bar' %} )
|
|
* fixed bug when \ was used in HTML
|
|
|
|
* 0.9.2 (2009-10-29)
|
|
|
|
* made some speed optimizations
|
|
* changed the cache extension to .php
|
|
* added a js escaping strategy
|
|
* added support for short block tag
|
|
* changed the filter tag to allow chained filters
|
|
* made lexer more flexible as you can now change the default delimiters
|
|
* added set tag
|
|
* changed default directory permission when cache dir does not exist (more secure)
|
|
* added macro support
|
|
* changed filters first optional argument to be a Twig_Environment instance instead of a Twig_Template instance
|
|
* made Twig_Autoloader::autoload() a static method
|
|
* avoid writing template file if an error occurs
|
|
* added $ escaping when outputting raw strings
|
|
* enhanced some error messages to ease debugging
|
|
* fixed empty cache files when the template contains an error
|
|
|
|
* 0.9.1 (2009-10-14)
|
|
|
|
* fixed a bug in PHP 5.2.6
|
|
* fixed numbers with one than one decimal
|
|
* added support for method calls with arguments ({{ foo.bar('a', 43) }})
|
|
* made small speed optimizations
|
|
* made minor tweaks to allow better extensibility and flexibility
|
|
|
|
* 0.9.0 (2009-10-12)
|
|
|
|
* Initial release
|