PHP MVCにおけるページタイトル

テンプレートファイル内では、ページタイトルを含む変数 $titleも利用可能です。 明らかに、このヘッダーも ページごとに異なります。この変数を 目的通りに使用しましょう:

/project/layouts/default.php<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><?= $title ?></title>
  </head>
  <body>
    ...
  </body>
</html>

特定のビューのタイトルを設定するには、 コントローラーでそのプロパティ titleに書き込む必要があります:

project/controllers/TestController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class TestController extends Controller
  {
    public function act()
    {
      // タイトルを設定:
      $this->title = 'testコントローラのactアクション';
      
      // 何らかのデータを渡してビューをレンダリング:
      return $this->render('test/act', [
        'var1' => 'eee',
        'var2' => 'bbb',
        'var3' => 'kkk',
      ]);
    }
  }
?>
Задание 1

テンプレートファイルと全てのコントローラーを修正し、 各ビューに対して個別のタイトルが表示されるようにしてください。

Задание 2

Page コントローラーに次の配列が 与えられているとします:

php<?php
  $this->pages = [
    1 => ['title'=>'page 1', 'text'=>'text 1'],
    2 => ['title'=>'page 2', 'text'=>'text 2'],
    3 => ['title'=>'page 3', 'text'=>'text 3'],
  ];
?>

指定されたページを表示する showアクションを作成してください。 ビューでは、キー 'text' のページテキストが 段落で囲まれ、キー 'title' のテキストが ページタイトルになるようにしてください。