h2O テンプレート エンジン (h ttp://www.h2o-template.org/ )を使用しています。
付属のデモファイルを使用したため、基本的なhtmlでは問題なく動作しますが。
私のコード:
<?php
/**
* Simple example rendering a user list
* ------------------------------------
*
* @credit - adapt from ptemplates sample
*/
require 'h2o.php';
$template = new H2o('test.html', array(
'cache_dir' => dirname(__FILE__)
));
$time_start = microtime(true);
echo $template->render(array(
'users' => array(
array(
'username' => 'peter <h1>asdfasdf</h1>',
'tasks' => array('school', 'writing'),
'user_id' => 1,
),
array(
'username' => 'anton',
'tasks' => array('go shopping <h1>je</h1'),
'user_id' => 2,
),
array(
'username' => 'john doe',
'tasks' => array('write report', 'call tony', 'meeting with arron'),
'user_id' => 3
),
array(
'username' => 'foobar',
'tasks' => array(),
'user_id' => 4
)
)
));
echo "in ".(microtime(true) - $time_start)." seconds\n<br/>";
およびテンプレート ファイル test.html:
{% extends 'layout.html' %}
{% block title %}Userlist | {{ block.super }}{% endblock %}
{% block content %}
<h2>Userlist</h2>
<ul>
{% for user in users limit:3 %}
<li>
<a href="/users/{{ user.username|urlencode }}">{{ user.username|truncate 4 }}</a> -
{{ user.tasks.first | safe }}
</li>
{% if not user.username == 'foobar' %}
haha
{% endif %}
{% endfor %}
</ul>
{% endblock %}
ここで述べたように、PDO/Mysql でこれを行うにはどうすればよいでしょうか。構文はある意味で Twig に似ていますが、データベースからのクエリに関する H2O のサイトのドキュメントには何もありません。