Slim3 (PHP) + Twig2 にて独自のカスタム関数を追加する

カスタム関数

Slim + Twig で View の開発をする場合、
Twig の公式ドキュメントとちょっと異なる書き方になる。

dependencies.php

$container['view'] = function ($c) {
	$settings = $c->get('settings')['renderer'];
	$view = new Twig($settings['template_path'], [
		//'cache' => $settings['template_cache_path'],
	]);
	$basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/');
	$view->addExtension(new TwigExtension($c['router'], $basePath));

	// カスタム関数
	$view->getEnvironment()->addFunction(new Twig_SimpleFunction('hello', function ($string) {
		return "Hello, {$string}";
	}));

	return $view;
};

使い方

{{ hello('World') }}
Hello, World