phpsource/템플릿2006. 9. 20. 13:43
written: Jan 28 2002
last modified: Sep 20 2006
템플릿 파일 작성 main.htm
작성된 템플릿 main.htm에는 {TITLE}라는 변수가 포함되어 있으며 이 변수는 출력하기 전에 실제 값으로 대치됩니다.
[code html;gutter:false] <!-- NAME: main.htm --> <HTML> <HEAD><TITLE>{TITLE} </TITLE> </HEAD> <BODY> </BODY> </HTML> <!-- END: main.htm --> [/code]
PHP 코드 작성 test.php
main.htm이라는 템플릿 파일을 이용하여 HTML의 원형을 작성하기 위한 PHP 코드는 아래와 같습니다.
[code php;gutter:false] <?php include_once('class.hTemplate.php'); $tpl = new hTemplate('./templates'); $tpl->define( array( 'main' => 'main.htm' ) ); $tpl->assign('TITLE', '후키템플릿 실험'); $tpl->assign('MAIN', 'main'); $tpl->output('MAIN'); ?> [/code]
class.hTemplate.php에는 클래스 hTemplate가 정의되어 있습니다. 이 파일을 포함시켜야 5번 행과 같이 $tpl이라는 객체를 생성할 수 있습니다. 객체 생성할 때 지정된 "./templates"에 의해 모든 템플릿들이 이 디렉토리에 있다는 것을 후키템플릿에 알려줍니다. 객체를 생성할 때 템플릿 디렉토리를 지정하지 않으면 현행 디렉토리에서 템플릿을 찾게 됩니다.
5번 행의 define() 함수를 실행하게 되면 템플릿 파일 main.htm의 내용은 템플릿 main에 저장되며 이 후로는 템플릿명 main을 통해 템플릿에 접근할 수 있습니다. 이 예제에서는 12번 행의 assign() 함수의 두 번째 인수에 템플릿 main을 지정하여 이 템플릿을 분석하도록 하고 있습니다.
11번 행의 assign() 함수를 통해 TITLE라는 템플릿 변수에 "후키템플릿 실험"라는 문자열을 할당합니다. 이와 같이 템플릿에 포함된 템플릿 변수에 대하여 미리 그 값을 할당하여야 12행과 같이 템플릿 main에 대하여 assign() 함수를 실행할 때 템플릿 main에 포함된 템플릿 변수를 앞서 할당된 그 변수값으로 대치할 수가 있습니다.
13번 행에 의해 output() 함수에서 지정된 템플릿 변수 MAIN의 내용이 출력됩니다.
12번 행에서와 같이 assign() 함수에서 지정한 MAIN이라는 템플릿 변수에는 이 함수에 의해 템플릿을 해석한 결과값이 마지막으로 저장되기 때문에 뒤에서 필요하다면 다른 템플릿을 해석할 때 또 다른 템플릿 변수로써 활용될 수 있습니다.
생성된 HTML 문서
test.php 코드에 의해 main.htm로 부터 생성된 HTML 문서를 보면 아래와 같습니다.
[code html;gutter:false] <!-- NAME: main.htm --> <HTML> <HEAD><TITLE> 후키템플릿 실험 </TITLE> </HEAD> <BODY> </BODY> </HTML> <!-- END: main.htm --> [/code]
생성된 HTML 코드를 보면 템플릿 변수 {TITLE}가 "후키템플릿 실험"라는 문자열로 대치되어 있는 것을 볼 수 있습니다.

Posted by 방글24