<?php error_reporting(E_ALL | E_STRICT); require 'template.php'; # build template string $template_str = join("\n", array( # test basic templates "%{greet}, %{name}!", # test filters and filters with parameters "Your name hashes to: %{ name | hash sha1 | uc }", # test custom filter "Your custom filtered name is: %{name|custom}", # test custom filter with arguments "Your custom_args name is: %{name|custom_args foo bar baz}", # test whitespace in filters "random test: %{name | hash sha512 | base64| uc }", # test pluralize filter 'pluralize test (0): %{count_0} item%{count_0 | s}', 'pluralize test (1): %{count_1} item%{count_1 | s}', 'pluralize test (10): %{count_10} item%{count_10 | s}', )) . "\n"; Luigi\Filters::add(array( 'custom' => function() { return 'custom'; }, 'custom_args' => function($v, $args) { return join(',', array_map(function($arg) use ($v) { return "$arg$v"; }, $args)); }, )); # build template $t = new Luigi\Template($template_str); $args = array( 'greet' => 'hello', 'name' => 'paul', 'count_0' => 0, 'count_1' => 1, 'count_10' => 10, ); # print results echo $t->run($args); # test static invocation echo Luigi\Template::run_once($template_str, $args);