自作MVCフレームワークのためのrenderViewメソッド
renderViewメソッドはビューファイルを取得し、
その中に変数の値を代入します。これは巧妙な方法で
行われます。ご存知の通り、ビューファイルで使用される
変数は、Pageクラスオブジェクトのdataプロパティに
含まれています。
これらの変数は連想配列です。この配列を実際の変数に
変換し、次にincludeを使用してビューファイルを
インクルードする必要があります。この場合、このファイルで
使用可能な変数は値を受け取り、出力として変数の値が
代入された単純なHTMLコードを得ることになります。
配列を変数に変換するために、特別な関数extractを
使用します:
<?php
private function renderView(Page $page) {
$viewPath = $_SERVER['DOCUMENT_ROOT'] . "/project/views/{$page->view}.php";
if (file_exists($viewPath)) {
ob_start();
$data = $page->data;
extract($data); // 配列を変数に
include $viewPath; // ビューファイルをインクルード
return ob_get_clean();
}
}
?>