テンプレートファイルをロードするクラスを作成します。私の例では、index.php という名前のファイルを作成しました。このファイルは、"templates" > "myTemplate" フォルダーに保存されます。次のクラスを使用できます。
<?php
// defines
define('DS', DIRECTORY_SEPARATOR);
define('_root', dirname(__FILE__));
// template class
class template
{
var templateName;
var templateDir;
function __construct($template)
{
$this->templateName = $template;
$this->templateDir = _root.DS.'templates'.DS.$this->templateName;
}
function loadTemplate()
{
// load template if it exists
if(is_dir($this->templateDir) && file_exists())
{
// we save the output in the buffer, so that we can handle the output
ob_start();
include_once($file);
// save output
$output = ob_get_contents();
// clear buffer
ob_end_clean();
// return output
return $output;
}
else
{
// the output when the template does not exists or the index.php is missing
return 'The template "'.$this->templateName.'" does not exists or the "index.php" is missing.';
}
}
}
?>
テンプレートをロードするだけの基本クラスです。これで、このクラスを次のように呼び出すことができます。
<?php
// example for using the class
include_once('class.template.php');
$template = new template('myTemplate');
$html = $template->loadTemplate();
echo $html;
?>
index.php で、次のように html を記述できるようになりました。
<!DOCTYPE html>
<html lang="en-GB">
<head>
<title>My Template</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<p>
My Content
</p>
</body>
</html>
これが少しお役に立てば幸いです。