Fixes the following issues:
- An issue occurs when an exception is thrown during inside a template which causes output buffers to remain open and the template stack to be left in an unexpected state.
- Traversable objects with array access are not able to be iterated when proxied
- Scalar arrays could not be rendered unless an ArrayObject template existed
- renderElse API method never returned content
- Library API is not fully covered by tests
Feature Release:
- Add a config option for iterating over escaped Traversable objects iterate_traversable (defaults to false)
Improve support for proxying arrays:
- Objects which implement ArrayIterator are now proxied using a compatible object
- Ensure keys are proxied when returned from ArrayObject
Bugfix Release:
- Refactor auto-escaping for arrays to preserve standard array interaction.
Bugfix Release:
- Improve escaping of arrays
- Add tests for globals
Feature Release:
- Add support for global variables, available in every template
Fix:
- Also filter the return values of methods.
Feature Release
- Allow direct access to the raw object when escaping. $context->getRawObject()
- Implement Countable interface for auto-escaped context. count($context);
Filter iterated/traversable objects.
Add renderNULL method for rendering NULL variables or direct templates.
Add __toString() support for the object proxy
Fix Savvy_UnexpectedValueException.
Add __isset and __unset to the ObjectProxy class.
Port PEAR2_Templates_Savant to Savvy.
- Always throw exceptions.
- Never load files internally.