이전 예제에서는 사용자 클래스에서 직접 출력하여 "View" 가 필요없었지만, 이제부터는 View를 사용하여 "Hello World" 를 출력해 보겠습니다.
복잡한 비즈니스로직은 모델 클래스 로 구현하고, 결과값을 화면에 출력하는 부분에선 "View" 를 이용하면 모델과 뷰를 분리할 수 있습니다.
아래와같이 이전 HelloWorld 클래스를 조금 변경합니다.
* Spac/model/HelloWorld.Class.php
<?php
class HelloWorld extends Controller {
var $string;
function HelloWorld() {}
function execute() {
$this->string = "Hello World";
$this->result_uri = "helloworld.html";
$this->dispatcher();
}
}
class HelloWorld extends Controller {
var $string;
function HelloWorld() {}
function execute() {
$this->string = "Hello World";
$this->result_uri = "helloworld.html";
$this->dispatcher();
}
}
이전클래스와 비교하여 변경된 부분에 대해서 설명하면
1. "Controller" 를 상속받습니다. (dispatcher 메소드를 사용하기 위해서)
2. 출력할 메세지를 뷰에 전달하기 위해 $string 변수를 사용합니다.
3. "$this->result_uri" 라는 맴버변수에 뷰로 사용할 파일을 지정합니다.
("Spac/view" 로부터 시작되는 뷰파일의 경로를 입력합니다.)
4. $this->dispatcher 메소드를 사용하여 HelloWorld 클래스의 실행결과값을 뷰에 전달합니다.
위에서 뷰로 사용할 파일을 "helloworld.html" 로 정의 하였으므로 뷰 경로안에 이 파일을 생성합니다.
* Spac/view/helloworld.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Hello World</title>
</head>
<body>
<h3><? echo $this->string; ?></h3>
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Hello World</title>
</head>
<body>
<h3><? echo $this->string; ?></h3>
</body>
</html>
다 완성됐습니다.
이제 브라우저에서 호출해봅니다.