Entersquare Inc. ホームページ作成の株式会社エンタースクウェア

【Slim3 + Twig】独自functionを作成する

【Slim3 + Twig】独自functionを作成する

Slim3とTwigを使って構築している時に、

assets用にパスを取得する関数が欲しなり、

独自のfunctionを作成しました。

Twig_Extension Classを拡張したClassを作る

functionをまとめておくclassを作ります。

class My_functions  extends  \Twig_Extension{

	public function getName()
	{
		return 'My_functions';
	}

	public function getFunctions()
	{
		return [
			new \Twig_SimpleFunction('assets', array($this, 'assets')),
		];
	}

                 //自作function
	public function assets($name)
	{
		return getenv('ROOT').$name;
	}

}

Containerに追加する

先ほど作成したclassをaddExtensionで追加します。

$container = $app->getContainer();

$container['view'] = function ($container) {

    $settings = $container->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);

    //作成したclassを追加する
    $view->addExtension(new My_function );

    return $view;

};

テンプレート内で使う

<img src="{{ assets('/img/logo-fav.png') }}" alt="">

Solutions

ソリューション

ホームページ作成

Webサイト制作・運用保守

コーポレートサイト/サービスサイト/オウンドメディアサイト/LP/EC

ウェブマーケティングの技術を使ってホームページの作成や保守を承っております。

Webのお悩み

Webのご相談・サポート

運用のお困りごと/集客のお困りごと/運用担当が居なくなったなど

Webに関するお困りごとや、お悩みなどのご相談、サポートを承っております。

その他、アクセス解析、広告運用、SNSサポートなどWebに関する事全般承っております。

詳しく見る