/themosis-twig

Twig template engine support for Themosis.

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

Twig

This package adds the Twig template engine support for Themosis.

Installation

Run the following command from your terminal in order to install the package:

composer require themosis/twig

Configuration

The package comes with a twig.php configuration file. If it's not automatically installed in your application, you can run the following command from your terminal:

php artisan vendor:publish --provider="Themosis\Twig\TwigServiceProvider"

Usage

This package provides the Twig engine to the View API coming with Laravel. Basically you can now create views using the .twig file extension instead of the .php or .blade.php extensions.

Twig views are located like any other views. All views directories, defined under the config/view.php configuration file paths property, can store Twig templates.

In order to control the Twig engine, you can modify its configuration under the config/twig.php file.

Create a Twig view

/**
 * From a controller method, return a Twig view:
 * This line is rendering the following view file `resources/views/welcome.twig`.
 */
return view('welcome');

/**
 * You can also render nested Twig views using the "." syntax.
 * This example is rendering the following view file `resources/views/pages/contact.twig`.
 */
return view('pages.contact');

Pass data

Just like any Blade views, you can pass data to a Twig view using the same parameters defined in the Laravel documentation:

/**
 * Passing data using the array parameter of the view function. 
 */
return view('person', [
    'name' => 'Carla'
]);

Here is the person.twig file in action:

<div>
    <p>{{ name }}</p>
</div>

You can also use the view with() method to pass data to your Twig template.

Twig WordPress extension

The package comes with a Twig WordPressExtension. Please refer to the extension file for details on available functions and filters provided by this extension in your Twig templates.

Note the use of the fn global object that can help you call any PHP functions. For example: fn.ucfirst('twig').

Notes

In order to learn the Twig template engine syntax, please refer to the official Twig documentation:

Credits