phpsource/템플릿2006. 9. 20. 11:57
written: Jan 28 2002
last modified: Sep 20 2006
사용방법을 알기 전에 우선 후키템플릿에서 사용하는 용어에 대하여 정리해 보겠습니다. 물론 이 용어들은 그 용도에 따라 여러가지로 정의될 수 있을 것입니다. 따라서 여기에서 정의한 용어들은 템플릿툴인 후키템플릿을 이용할 때를 기준으로 설명된 것임을 염두에 두기 바랍니다.
템플릿(template)
일반적인 의미에서 템플릿이란 무엇인가를 만들 때 안내역할을 하는데 사용되는 형식(꼴), 틀 또는 모형 등을 의미합니다. 예를 들어 표준화된 두문이나 미문이 들어있는 문서도 일종의 템플릿인데, 이를 복사한 뒤 변동이 있는 부분만을 채워서 문서를 완성할 수 있습니다. 또한 플로우차트에 사용되는 각종 부호를 잘 그릴 수 있도록 만든 모양자도 템플릿이라고 부릅니다. - (텀즈의 정의;www.terms.co.kr)
PHP는 HTML 내부에 PHP 명령어를 삽입할 수 있도록 허용함으로서 동일한 문서에서 데이터를 다양하게 변화 시켜가면서 보여줄 수 있습니다. 이와 같이 변화무쌍한 HTML 문서를 생성할 수 있다는 것은 PHP와 같은 서버 사이드 스크립트의 장점이기는 하지만 문서가 조금만 복잡해 진다면 PHP 코드와 HTML 태그가 혼재되어 있어 매우 혼란스럽기도 하며, 또한 도무지 전체 흐름이 파악하기가 쉽지 않습니다. 그 외에도 웹사이트가 복잡해 지다보면 PHP코드와 HTML이 혼합하는 방식으로는 관리하기도 어렵고, 향후 홈페이지를 수정하는 것도 무척이나 고달픈 작업이 되기 마련입니다.
그래서 웹사이트 규모가 커지게 되면 서버사이드 스크립트에서 수행할 PHP 코드와 웹브라우저 화면의 인터페이스를 담당하게 될 HTML 태그를 분리하기 시작하게 됩니다. HTML 태그는 주로 화면 디자인 및 정적 데이터를 나타내는데 사용되며, 반면 PHP 코드는 디자인된 화면에 들어갈 동적 데이터를 생성하는 일을 담당하게 됩니다. 여기에서 PHP 코드에서 완전히 분리되어 HTML로 작성된 코드를 템플릿이라 합니다. 우리가 잘 알고 있는 달력을 예를 들어 설명하겠습니다. 아래는 2001년12월 달력을 나타낸 것입니다.
2001년 12월
             1 
 2   3    4    5    6    7    8 
 9  10   11   12   13   14   15 
16  17   18   19   20   21   22 
23  24   25   26   27   28   29 
30  31            
이 예제에서 PHP 코드와는 독립적으로 작성될 수 있는 템플릿을 분리해 낸다면 아래와 같이 될 것입니다. 이러한 템플릿은 나모 웹에디터와 같은 툴을 이용하면 아주 편하고 쉽게 작성될 수 있을 것입니다.
    년  월
             
             
             
             
             
             
템플릿에 들어갈 데이터는 PHP 코드를 이용하여 년도와 달에 맞는 데이터를 생성하여 채워 넣게 됩니다.
파일명을 가지고 파일을 구분하는 것과 같이 메모리에 올려진 템플릿도 템플릿명(template name)을 가지고 구분하게 되지요. 그런데 이 템플릿이 대부분 파일로부터 읽혀지는 관계로 템플릿명을 파일태그(file tag) 또는 파일핸들(file handle)이라는 용어로도 사용됩니다.
템플릿 변수(template variable)
PHP 코드로 생성된 데이터를 템플릿에 채워 넣기 위해서는 템플릿과 PHP 코드사이에 해당 데이터를 다른 데이터와 구분하여 인식할 수 있는 이름이 필요하게 됩니다. 위의 예제를 통해 년과 월을 구분하는 경우를 예를 든다면 아래와 같을 것입니다.
{YEAR}{MONTH}
 ...  ...  ...  ...  ...  ...  ...
위와 같이 템플릿을 작성하였다면, 아래와 같이 PHP 코드에서 {YEAR}과 {MONTH}를 "2001"과 "12"로 설정할 수 있습니다.
[code php;gutter:false] $tpl = new hTemplate(); . . . $tpl->assign('YEAR', '2001'); $tpl->assign('MONTH', '12'); [/code]
< 템플릿을 이용한 홈페이지 구성 >
이제 템플릿을 출력할 때 {YEAR} 부분은 "2001"로 대치되고 {MONTH}부분은 "12"로 대치되어 그 결과 아래와 같이 템플릿 내용이 수정되어 출력될 것입니다.
200112
 ...  ...  ...  ...  ...  ...  ...
여기서 템플릿에 표시하는 {YEAR}, {MONTH}와 같은 템플릿 변수는 템플릿툴에 따라 다소 다르게 표시될 수 있습니다. 후키템플릿에서는 보는 바와 같이 템플릿변수를 템플릿 파일 내에서는 중괄호로 둘러싸도록 하고 있으나 PHP 코드 내에서는 중괄호 없이 사용합니다.
이와 같이 템플릿에 포함된 {YEAR}, {MONTH}을 템플릿에 삽입되는 변수라는 의미에서 템플릿 변수라고 부르며 다른 내용과 구분하여 템플릿 변수를 나타내기 위한 시작 및 종료기호 "{", "}"를 템플릿 태그라고 합니다.
기본형 : {변수명}
확장형 : <!--{변수명}-->
템플릿명을 파일핸들이라고 부르는 것과 같이 템플릿 변수를 변수핸들(variable handle)이라고도 부릅니다.
템플릿을 템플릿 변수와 관련지어 정의한다면 결국 템플릿이란 템플릿 변수가 포함된 HTML 문서라고 할 수 있습니다.
템플릿 파일(template file)
위에서 설명한 템플릿이 HTML 텍스트 형식의 별도의 파일로 저장된 형태를 템플릿 파일이라 합니다. 이 파일이 PHP 문서에 의해 메모리로 올려지면 템플릿이 되는 것이지요. 템플릿툴에 따라 메모리에 올려진 템플릿 자료구조는 여러가지 형태를 가지게 됩니다. 템플릿 파일로부터 읽혀진 상태 그대로의 문자열일 수도 있고 아니면 PHP 문서에서 사용하기 편리하도록 구성된 배열일 수도 있습니다. 후키템플릿에서는 템플릿 파일을 분석하여 그 결과를 배열에 기록하고 있습니다.
템플릿 NO파일(template no-file)
이와 같이 템플릿의 원소스는 HTML 텍스트 파일의 형식으로 작성되는 것이 보통이지만 때로는 DB 등에 저장되어 관리될 수도 있을 것입니다.

Posted by 방글24