View を実装する

参考にしたドキュメント

hello クラス用の view を作成する

application/views/hello.php として保存する。

<h1><?php echo $post_title; ?></h1>
<p>こんにちは! <?php echo $name; ?>さん。</p>

hello クラスにメソッドを追加する

<?php
class Hello_Controller extends Controller {
  // View クラスをインスタンス変数に保存する
  private $view_;

  public function __construct()
  {
    // サブクラスでコンストラクタを呼ぶときは、親クラスのコンストラクタを明示的に呼び出す
    parent::__construct();
    // インスタンス変数を初期化する
    // View クラスを呼び出すときに、application/views/hello.php を呼び出すために引数として渡す
    $this->view_ = new View('hello');
  }

  public function index()
  {
    echo 'Hello, World!';
  }

  public function comments()
  {
    echo 'Look at this!';
  }

  public function greeting($name, $greeting)
  {
    echo "Hello! ${name}, ${greeting}?";
  }

  public function show_name($name)
  {
    // view の hello.php に記述されている変数に代入をする
    $this->view_->post_title = 'ようこそ!';
    $this->view_->name = $name;
    // render(true) でブラウザに出力を行う
    $this->view_->render(true);
  }
}
?>

View ファイルに記述した変数に代入がなされない場合は、エラーが発生する。その際は、変数が正しく代入されているか確認する。
正しく設定されていれば、http://localhost/shoplink/hello/show_name/littlebuddha/ にアクセスをすれば、下記のように表示される。