Lumped tweets

Just marks

Twigを外部Templateファイル無しで使う

この記事で分かること

Twigの亜空間殺法(嘘)

背景

自前でTemplateEngineみたいなことをしようとしたときに、そもそもPHPでTwig使ってるんだからそれ使えば良くない? ってなったので、調べた。結論を言うとやりたいことより複雑性が高かったので今回採用はしなかった。

Twig はこちら

Twig for Developers - Documentation - Twig - The flexible, fast, and secure PHP template engine

コード

なんかPHPシンタックスハイライト効いてるのか効いてないのかわからん……

use Twig_Loader_Array;
use Twig_Environment;

$targetTxt = "You are {{ replaceText }} ?";

$loader = new Twig_Loader_Array(['index.html' => $targetText]);
$twig = new Twig_Environment($loader);
try {
    $res = $twig->render('index.html', ['replaceText' => 'hogehogewww']);
} catch(Exception $e) {
    var_dump($e);
}

$res; 
// "You are hogehogewww ?"

Twig_Loader_Array でインメモリに index.html をKeyとしてTemplateを束縛。 束縛したTempleteをRenderするときに連想配列で置換したい内容を挿入。

なるほどなぁ。