2011年8月12日金曜日

PHPテンプレートエンジンTwig その2

こんにちは、Nakajinです。

今回は、Twigの変数の扱い方について簡単に書いていこうと思います。

まず、PHP側でテンプレートに表示する変数のセットは以下のようになります。

[php]
<?php

require_once 'Twig/Autoloader.php';
Twig_Autoloader::register();

// Twigの基本設定
$loader = new Twig_Loader_Filesystem('./');
$twig = new Twig_Environment($loader, array(
'cache' => './cache',
));

// テンプレートの呼び出し
$template = $twig->loadTemplate('test.html');
// 変数をセットして出力
echo $template->render(array('test' => 'テスト'));

[twig]
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>テスト</title>
</head>
<body>
{{ test }}
</body>
</html>

[表示]
テスト

test変数に「テスト」という文字列をセットしてTwig側で呼び出すことができました。

配列やオブジェクトを渡すこともできます。

[php]
$array = array(

'hello' => 'こんにちは'
);
echo $template->render(array('test' => $array));

[twig]
{{ test.hello }}

のように、「.」を使って配列の要素を指定することができます。

[php]
class Test {

public $hello = 'こんにちは';
}
$object = new Test();
echo $template->render(array('test' => $object));

[twig]
{{ test.hello }}

オブジェクトの場合も、「.」を使ってプロパティにアクセスすることができます。

[php]
class Test {

public function hello() {
return 'こんにちは';
}
}
$object = new Test();
echo $template->render(array('test' => $object));

[twig]
{{ test.hello }}

オブジェクトの場合も、「.」を使ってプロパティにアクセスすることができます。

[php]
class Test {

public function getHello() {
return 'こんにちは';
}
}
$object = new Test();
echo $template->render(array('test' => $object));

[twig]
{{ test.hello }}

また、オブジェクトのgetterメソッドにアクセスすることもできます。

次回は、Twigの構文について書いてみようと思います。

0 件のコメント:

コメントを投稿