phpsource/템플릿2006. 9. 20. 13:05
written: Jan 28 2002
last modified: Sep 20 2006
여기서는 기존에 FastTemplate을 이용하여 작성된 문서를 거의 수정없이 사용하는 방법에 대하여 살펴보겠습니다.  1.1.1 버전부터는 이 기능을 지원하지 않습니다.
hFastTempalte 클래스
hFastTemplate 클래스는 FastTempalte로 작성된 문서를 수정없이 재사용하기 위해 작성된 것입니다. 이 클래스는 class.hFastTemplate.php 파일 내에 작성되어 있습니다.
hTemplate 클래스 대신에 hFastTemplate 클래스를 이용하면 FastTemplate 문서(php 소스 및 템플릿 파일)를 거의 수정없이 재사용할 수 있습니다.
FastTempalte용 템플릿 파일의 호환성
FastTemplate용으로 작성된 템플릿 파일은 전혀 변경없이 후키템플릿에서 그대로 사용할 수 있습니다.
FastTempalte용 php 소스의 호환성
후키템플릿 hFastTemplate 클래스의 사용방법은 FastTemplate의 사용방법과 동일합니다. 따라서 기존에 FastTemplate를 이용하여 작성된 페이지가 있다면 아래와 같이 클래스 파일명과 클래스명만 변경시켜주면 나머지 부분은 전혀 변경하지 않고도 사용할 수 있습니다.
예를 들어 FastTemplate를 이용하여 작성된 문서가 아래와 같다고 하면,
[code php;gutter:false] include_once('./class/template/class.FastTemplate.php'); $tpl = new FastTemplate('./Templates'); [/code]
이를 아래와 같이 수정합니다.
[code php;gutter:false] include_once('./class/template/class.hFastTemplate.php'); $tpl = new hFastTemplate('./Templates', array( 'update' => $update ? true : false, 'id' => $sign, 'path' => './cache' ) ); [/code]
hFastTemplate 클래스를 이용하면 URL 자동 변경기능을 수행하지 않습니다. 반면 캐시 기능은 "active_cache_handler"를 true로 지정하지 않더라도 동작하도록 되어 있습니다. 만약 캐시 기능까지 동작하기를 원치않으면 아래와 같이 "active_cache_handler"를 false로 설정하기 바랍니다.
[code php;gutter:false] $tpl = new hFastTemplate('./Templates', array( 'active_cache_handler' => false ) ); [/code]
FastTempalte 함수와의 호환성
FastTemplate에서 제공하는 함수 중에서 define, assign, get_assigned, parse, FastPrint, fetch, define_dynamic, clear_dynamic 함수만을 이용하여 작성된 소스라면 hFastTemplate 클래스를 이용하여 거의 100% 수정없이 사용할 수 있을 것입니다.
이 외의 함수로는 clear 계열의 삭제함수 밖에 없습니다만 아마 일반적으로 clear 계열의 함수를 사용하는 경우는 거의 없을 것입니다. 혹시나 해서 FastTemplate에서 제공하는 모든 삭제함수(clear_tpl, clear_all, clear, clear_parse, clear_href, clear_define)에 대하여도 가능한한 호환성을 유지되도록 작성하였습니다. 다른 함수와 달리 삭제함수는 템플릿 자료구조의 영향을 직접적으로 받기 때문에 템플릿 자료구조가 다른 FastTemplate와 호환성을 유지하기는 매우 어렵습니다. 따라서 경우에 따라서는 문제가 발생할 수 있으니 충분히 테스트해 보시기 바랍니다.
원본을 수정하기 전에 반드시 백업받아두시기 바랍니다!!! 만약 수정 후 정상적으로 동작되지 않는다면 원본이 필요하겠지요.
제공 함수 목록
<표1> 제공 함수 목록
분류 FastTemplate hFastTemplate 기능
템플릿 define define 템플릿 파일 읽기,템플릿 구조 분석
clear_tpl clear_tpl*1 템플릿 삭제
clear_define clear_define*1 파일핸들 삭제
템플릿 변수 assign assign 템플릿 변수에 값 할당
parse parse
get_assigned get_assigned 템플릿 변수값 가져오기
fetch fetch
clear clear 템플릿 변수 삭제
clear_parse clear_parse
clear_href clear_href
clear_dynamic clear_dynamic
출력 FastPrint FastPrint 템플릿 변수값 출력
기타 strict - 미정의 템플릿 변수 보여주기
no_strict - 미정의 템플릿 변수 감추기
define_dynamic define_dynamic*1 부모 템플릿 지정하기
clear_all clear_all clear();clear_tpl();
<표1>에 표기된 hFastTemplate의 멤버함수 중에서 *1 표시가 있는 함수들(clear_tpl, clear_define, define_dynamic)은 실행문장이 없는 더미 함수들입니다.
strict, no_strict 함수
strict()
no_strict()
FastTemplate에서 strict, no_strict 함수는 미정의된 템플릿 변수가 있을 때 에러메시지를 발생시킬 것인지 아니면 무시하고 미정의된 템플릿 변수를 모두 null 처리할 것인지를 결정하는 함수입니다. 기본값으로는 에러메시지를 발생시키도록 되어 있습니다. no_strict 함수를 이용하면 에러메시지없이 그냥 무사통과시킬 수 있지요.
hFastTemplate 클래스에서는 strict, no_strict 함수를 제공하지 않습니다. 따라서 strict, no_strict 함수는 모두 삭제하시기 바랍니다. 미정의된 템플릿 변수가 있으면 무조건 에러메시지를 보게 되거나(버전 0.0.1) 아니면 빈문자열이 할당(버전 0.0.2 이상)됩니다.

Posted by 방글24