2017 © Pedro Peláez
 

library laravel-twigbridge

Twig view integration for Laravel 4

image

barryvdh/laravel-twigbridge

Twig view integration for Laravel 4

  • Wednesday, September 10, 2014
  • by Barryvdh
  • Repository
  • 8 Watchers
  • 59 Stars
  • 11,593 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 8 Forks
  • 4 Open issues
  • 10 Versions
  • 1 % Grown

The README.md

Laravel 4 TwigBridge

Note: This package is deprecated in favor of https://github.com/rcrowe/TwigBridge. Please try the 0.6.x release, which should be very similar and provide the same functionality. Further progress will take place there., (*1)

This packages adds Twig as a Laravel Template Engine:, (*2)

  • Use .twig files just like Blade/PHP Templates
  • Supports creator/composer events
  • Easily add helpers/filters ({{ url('/') }} or {{ 'someThing' | snake_case }})
  • Can call Facades ({{ MyModel.to('/') }})
  • Can be integrated with Assetic (https://github.com/barryvdh/laravel-assetic)
  • Default extensions for easier use.

See http://twig.sensiolabs.org/ for more info about Twig Templating, (*3)

Install

Require this package in your composer.json and run composer update (or run composer require barryvdh/laravel-twigbridge:dev-master directly):, (*4)

"barryvdh/laravel-twigbridge": "0.3.x"

After updating composer, add the ServiceProvider to the providers array in app/config/app.php, (*5)

'Barryvdh\TwigBridge\ServiceProvider',

You can add the Twig Facade to have easy access to Twig_Environment, ie. Twig::render('template.twig')., (*6)

'Twig' => 'Barryvdh\TwigBridge\Twig',

Usage

After install, you can just use View::make('index'); The .twig extension should be omitted in the View::make() call, just like Blade files. Within your Twig files, you can reference them with or without .twig. You can also use view composers/creators, just like in Blade templates., (*7)

View::composer('profile', function($view)
{
    $view->with('count', User::count());
});

Extensions

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

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

Filters: * camel_case, snake_case, studly_case * str_ (All the Str:: methods, snake_cased), (*10)

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

Example Template Syntax

In a Blade template, if you had a route to edit a task in a Task/Todo application, you would use the following syntax to link to a route., (*12)

{{ link_to_route('tasks.edit', 'Edit', $task->id, array('class' => 'btn btn-primary')) }}

In a Twig template you would do the same thing using the following syntax. Notice the task object drops the dollar sign ($) and instead of an arrow (->) you use a period ('.'). Also, you convert the array to a Python/Javascript dictionary type syntax., (*13)

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

Commands

2 Artisan commands are included: * $ php artisan twig:clear - Clear the compiled views in the Twig Cache * $ php artisan twig:lint <dir or filename> - Check a directory or file for Twig errors, for exampele php artisan twig:lint app/views, (*14)

Configure

To publish a configuration file, you can run the following command:, (*15)

$ php artisan config:publish barryvdh/laravel-twigbridge

Change your config to choose what helpers/filters you want to use, and what Facades to register. You can also pass in a callback or array to define options. You can also use an instance of Twig_SimpleFunction or Twig_SimpleFilter. Besides facades, you can also add your Models., (*16)

'functions' => array(
    'simple_function',
    'class_function' => 'MyClass@method',
    'other_function' => array(
        'is_safe' => array('html')
    ),
    'call_me' => array(
        'is_safe' => array('html'),
        'callback' => function($value){ 
                return phone($value);
            }
    )
),

'filters' => array(
    'filter_this' => function($value){
            return doSomething($value);
        }
),

'facades' => array(
    'Auth', 
    'MyModel'
)

Extend

The Twig_Environment is available as 'twig' in the App Container, so you can access it via app('twig') or App::make('twig'). The ChainLoader is 'twig.loader', the array templates are in 'twig.templates'. You can also use the Twig Facade to access the Twig_Environment functions directly., (*17)

```php //Using the App container $twig = app('twig'); $twig->addFunction(new Twig_SimpleFunction(..));, (*18)

$loader = App::make('twig.loader'); $loader->addLoader($myLoader);, (*19)

//Using the Facade Twig::addGlobal('key', $value); Twig::addFunction(new Twig_SimpleFunction(..)); Twig::getLoader()->addLoader($myLoader);, (*20)

//Adding templates to the array loader App::extend('twig.templates', function($templates){ $templates['hello'] = 'Hello World!'; return $templates; }); echo Twig::render('hello'); //Hello World! ```, (*21)

The Versions

10/09 2014

0.3.x-dev

0.3.9999999.9999999-dev

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig views bridge twigbridge

10/09 2014

dev-master

9999999-dev

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig views bridge twigbridge

09/06 2014

v0.3.3

0.3.3.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig views bridge twigbridge

25/03 2014

v0.3.2

0.3.2.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig views bridge twigbridge

25/02 2014

v0.3.1

0.3.1.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig views bridge twigbridge

24/02 2014

v0.3

0.3.0.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel twig views bridge twigbridge

06/02 2014

v0.2.2

0.2.2.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

laravel twig views bridge twigbridge

06/02 2014

v0.2.1

0.2.1.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

laravel twig views bridge twigbridge

01/02 2014

v0.2

0.2.0.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

laravel twig views bridge twigbridge

31/01 2014

v0.1

0.1.0.0

Twig view integration for Laravel 4

  Sources   Download

MIT

The Requires

 

laravel twig views bridge twigbridge