PHP MVC에서 페이지 제목
템플릿 파일에서는 페이지 제목을 포함하는
$title 변수에도 접근할 수 있습니다.
분명히 이 제목도 페이지마다 다를 것입니다.
이 변수를 목적에 맞게 사용해 봅시다:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
특정 뷰에 대한 제목을 설정하려면 컨트롤러에서
title 속성에 기록해야 합니다:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// 제목 설정:
$this->title = '테스트 컨트롤러의 act 동작';
// 데이터를 전달하면서 뷰 렌더링:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
템플릿 파일과 모든 컨트롤러를 수정하여 각 뷰마다 고유한 제목이 출력되도록 하세요.
Page 컨트롤러에 다음과 같은 배열이
주어졌다고 가정합니다:
<?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' 키의 텍스트는
페이지 제목이 되도록 하세요.