自作MVCフレームワークのためのrenderViewメソッド

renderViewメソッドはビューファイルを取得し、 その中に変数の値を代入します。これは巧妙な方法で 行われます。ご存知の通り、ビューファイルで使用される 変数は、Pageクラスオブジェクトのdataプロパティに 含まれています。

これらの変数は連想配列です。この配列を実際の変数に 変換し、次にincludeを使用してビューファイルを インクルードする必要があります。この場合、このファイルで 使用可能な変数は値を受け取り、出力として変数の値が 代入された単純なHTMLコードを得ることになります。

配列を変数に変換するために、特別な関数extractを 使用します:

/core/View.php<?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();
    }
  }
?>