2017 © Pedro Peláez
 

library twigbridge

Adds the power of Twig to Laravel

image

winglian/twigbridge

Adds the power of Twig to Laravel

  • Monday, November 3, 2014
  • by winglian
  • Repository
  • 1 Watchers
  • 0 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 145 Forks
  • 0 Open issues
  • 18 Versions
  • 0 % Grown

The README.md

Allows you to use Twig seamlessly in Laravel 4., (*1)

Latest Stable Version Total Downloads Build Status Coverage Status License, (*2)

Requirements

TwigBridge >=0.6 requires PHP 5.4+ & Laravel 4.1+., (*3)

If you need to support PHP 5.3 or Laravel 4.0 checkout out TwigBridge 0.5.*, (*4)

Installation

Add rcrowe\twigbridge as a requirement to composer.json:, (*5)

{
    "require": {
        "rcrowe/twigbridge": "0.6.*"
    }
}

Update your packages with composer update or install with composer install., (*6)

Once Composer has installed or updated your packages you need to register TwigBridge with Laravel itself. Open up app/config/app.php and find the providers key towards the bottom and add:, (*7)

'TwigBridge\ServiceProvider'

You can add the TwigBridge Facade, to have easier access to the TwigBridge (or Twig_Environment)., (*8)

'Twig' => 'TwigBridge\Facade\Twig',
Twig::addExtension('TwigBridge\Extension\Loader\Functions');
Twig::render('mytemplate', $data);

Configuration

TwigBridge's configuration file can be extended by creating app/config/packages/rcrowe/twigbridge/config.php. You can find the default configuration file at vendor/rcrowe/twigbridge/src/config/config.php., (*9)

You can quickly publish a configuration file by running the following Artisan command., (*10)

$ php artisan config:publish rcrowe/twigbridge

Usage

You call the Twig template like you would any other view:, (*11)

// Without the file extension
View::make('i_am_twig', [...])

TwigBridge also supports views in other packages:, (*12)

View::make('pagination::simple')

The above rules continue when extending another Twig template:, (*13)

{% extend "parent" %}
{% extend "pagination::parent" %}

You can call functions with parameters:, (*14)

{{ link_to_route('tasks.edit', 'Edit', task.id, {'class': 'btn btn-primary'}) }}

And output variables, escaped by default. Use the raw filter to skip escaping., (*15)

{{ some_var }}
{{ html_var | raw }}
{{ long_var | str_limit(50) }}

Extensions

Sometimes you want to extend / add new functions for use in Twig templates. Add to the enabled array in config/extensions.php a list of extensions for Twig to load., (*16)

'enabled' => array(
    'TwigBridge\Extensions\Example'
)

TwigBridge supports both a string or a closure as a callback, so for example you might implement the Assetic Twig extension as follows:, (*17)

'enabled' => [
    function($app) {
        $factory = new Assetic\Factory\AssetFactory($app['path'].'/../some/path/');
        $factory->setDebug(false);
        // etc.....
        return new Assetic\Extension\Twig\AsseticExtension($factory);
    }
]

TwigBridge comes with the following extensions enabled by default:, (*18)

  • Twig_Extension_Debug
  • TwigBridge\Extension\Laravel\Auth
  • TwigBridge\Extension\Laravel\Config
  • TwigBridge\Extension\Laravel\Form
  • TwigBridge\Extension\Laravel\Html
  • TwigBridge\Extension\Laravel\Input
  • TwigBridge\Extension\Laravel\Session
  • TwigBridge\Extension\Laravel\String
  • TwigBridge\Extension\Laravel\Translator
  • TwigBridge\Extension\Laravel\Url
  • TwigBridge\Extension\Loader\Facades
  • TwigBridge\Extension\Loader\Filters
  • TwigBridge\Extension\Loader\Functions

To enable '0.5.x' style Facades, enable the Legacy Facades extension: - TwigBridge\Extension\Laravel\Legacy\Facades, (*19)

FilterLoader and FunctionLoader

These loader extensions exposes Laravel helpers as both Twig functions and filters., (*20)

Check out the config/extensions.php file to see a list of defined function / filters. You can also add your own., (*21)

FacadeLoader

The FacadeLoader extension allows you to call any facade you have configured in config/extensions.php. This gives your Twig templates integration with any Laravel class as well as any other classes you alias., (*22)

To use the Laravel integration (or indeed any aliased class and method), just add your facades to the config and call them like URL.to(link) (instead of URL::to($link)), (*23)

Functions/Filters/Variables

The following helpers/filters are added by the default Extensions. They are based on the helpers and/or facades, so should be self explaining., (*24)

Functions: * asset, action, url, route, secure_url, secure_asset * auth_check, auth_guest, auth_user * config_get, config_has * form_ (All the Form:: methods, snake_cased) * html_ (All the Html:: methods, snake_cased) * input_get, input_old * link_to, link_to_asset, link_to_route, link_to_action * session_has, session_get, csrf_token * str_ (All the Str:: methods, snake_cased) * trans, trans_choice * url_ (All the URL:: methods, snake_cased), (*25)

Filters: * camel_case, snake_case, studly_case * str_ (All the Str:: methods, snake_cased) * trans, trans_choice, (*26)

Global variables: * app: the Illuminate\Foundation\Application object * errors: The $errors MessageBag from the Validator (always available), (*27)

Artisan Commands

TwigBridge offers a command for CLI Interaction., (*28)

Empty the Twig cache:, (*29)

$ php artisan twig:clean

Lint all Twig templates:, (*30)

$ php artisan twig:lint

The Versions

06/02 2013

v0.1.9

0.1.9.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

05/02 2013

v0.1.8

0.1.8.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

24/01 2013

v0.1.7

0.1.7.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

23/01 2013

v0.1.6

0.1.6.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

16/01 2013

v0.1.5

0.1.5.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

16/01 2013

v0.1.4

0.1.4.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

12/01 2013

v0.1.3

0.1.3.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

10/01 2013

v0.1.2

0.1.2.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

10/01 2013

v0.1.1

0.1.1.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig

10/01 2013

0.1.0

0.1.0.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

The Development Requires

laravel twig

22/12 2012

v0.0.7

0.0.7.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig

06/12 2012

v0.0.6

0.0.6.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig

06/12 2012

v0.0.5

0.0.5.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig

06/12 2012

v0.0.4

0.0.4.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig

30/11 2012

v0.0.3

0.0.3.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig

27/11 2012

v0.0.2

0.0.2.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig

27/11 2012

v0.0.1

0.0.1.0

Adds the power of Twig to Illuminate / Laravel 4

  Sources   Download

BSD

The Requires

 

laravel twig