NAME

Dancer2::Core::Role::Template - Role for template engines

VERSION

version 1.1.0

DESCRIPTION

Any class that consumes this role will be able to be used as a template engine under Dancer2.

In order to implement this role, the consumer must implement the method render. This method will receive three arguments:

$self
$template
$tokens

Any template receives the following tokens, by default:

  • perl_version

    Current version of perl, effectively $^V.

  • dancer_version

    Current version of Dancer2, effectively Dancer2->VERSION.

  • settings

    A hash of the application configuration.

  • request

    The current request object.

  • params

    A hash reference of all the parameters.

    Currently the equivalent of $request->params.

  • vars

    The list of request variables, which is what you would get if you called the vars keyword.

  • session

    The current session data, if a session exists.

ATTRIBUTES

name

The name of the template engine (e.g.: Simple).

charset

The charset. The default value is UTF-8.

default_tmpl_ext

The default file extension. If not provided, tt is used.

views

Path to the directory containing the views.

layout

Path to the directory containing the layouts.

layout_dir

Relative path to the layout directory.

Default: layouts.

engine

Contains the engine.

METHODS

view_pathname($view)

Returns the full path to the requested view.

layout_pathname($layout)

Returns the full path to the requested layout.

pathname_exists($pathname)

Returns true if the requested pathname exists. Can be used for either views or layouts:

$self->pathname_exists( $self->view_pathname( 'some_view' ) );
$self->pathname_exists( $self->layout_pathname( 'some_layout' ) );

render_layout($layout, \%tokens, \$content)

Render the layout with the applied tokens

apply_renderer($view, \%tokens)

apply_layout($content, \%tokens, \%options)

process($view, \%tokens, \%options)

template($view, \%tokens, \%options)

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by Alexis Sukrieh.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.