Version greater than v0.12.x now require Twig3. There are some feature that were removed in Twig3, so we were forced to remove some features as well in TwigBridge
- add
'TwigBridge\Extension\Loader\Globals'in the configuration twigbridge.extensions.enabled. Or else, you will loose global variableserrors,appand all other shared withView::share - add
'TwigBridge\Extension\Laravel\Event'in the configuration twigbridge.extensions.enabled. Or else,composing:{view name}andcreating:{view name}events will no longer be triggered. - Remove config 'base_template_class' in config/twigbridge.php. It is no longer possible to use a custom template class.
- Make sure you no longer support Twig2 deprecated features: https://twig.symfony.com/doc/2.x/deprecated.html
There have been some big changes since the last 0.5.x release. 0.6.x now only supports PHP 5.4+ and is targeted for Laravel 4.2. It probably still works for L4.0/4.1, but this is not tested/supported.
Some of noticable changes are:
- The ServiceProvider has been renamed from
TwigBridge\TwigServiceProvidertoTwigBridge\ServiceProvider, so update this in your config/app.php - A Twig facade is added, see the install instructions.
- The AliasLoader has been removed, Facades are not automatically called with
class_method(...). This has been replaced with:- Extensions for the most common Facades, which can be used with the same syntax (see readme for available extensions)
- The Facade Loader Extension imports Facades which are configured in the package config, and can be called like
Class.method() - The LegacyFacades Extension which can be enabled, to provide backward compatability with the 0.5 style Facades
- The TwigBridge events are removed. Similar results can be achieved by simply using the Twig facade or IoC bindings
- The Compile command has been removed. Templates are now automaticcaly compiled on the
php artisan optimizecommand. - The package configuration has been split in 2 files. Republish the config and re-apply your settings.
- The getAttributes() functions has changed, make sure you call attributes/methods correctly on your models.
model.attributewill get the function,model.attribute()the Relation object. Other methods on models will also have to use parentheses.
For more changes see the changelog in CONTRIBUTING.md