Menu: Renderer


Windwalker Renderer is a template engine adapters to easily render template files for different engines with same interface.

Support Engines

  • PHP
  • Twig
  • Blade
  • Edge (A Blade compitable engine without dependencies)
  • Mustache
  • Plates


Install via composer

composer require windwalker/renderer ^4.0

Use in Windwalker

By default, windwalker-starter will install renderer as dependency.

You can render a template by RendererService:

use Windwalker\Core\Renderer\RendererService;

$rendererService = $app->service(RendererService::class);

$rendererService->render(''); // Will auto detect template file type

Use as Standalone Component

Getting Started

The basic PHP renderer is PlatesRenderer, which is an adapter of league/plates:

use Windwalker\Renderer\PlatesRenderer;

$renderer = new PlatesRenderer(
        // Required
        'base_dir' => '/path/to/tmpl'

// Make a template callback
$template = $renderer->make('flower/sakura'); // Will load `/path/to/tmpl/flower/sakura.phtml`

// Render it
echo $template(['foo' => 'bar']);

// You can render it again with different data
echo $template(['foo' => 'goo']);

Directly render:

echo $renderer->render('flower/sakura', ['foo' => 'bar']);

Extends Template Engine

In Windwalker 4, Renderer on-longer keep the paths and leave engine to handle it.

Use extends to configure template engine before rendering:

    function (\League\Plates\Engine $engine) {

        return $engine;

Custom Engine Builder

If you want to create your own engine, use setEngineBuilder():

    function () {
        return new \League\Plates\Engine('/path/to/templates');
Found a typo? Something is wrong in this documentation? Make an edit
Table of Contents