hTemplate – 0.1.개요

hTemplate은 2002년 당시 PHP에서 널리 사용되고 있는 FastTemplate를 수정,보완한 것입니다. 우선 블록의 중첩(nested block)을 허용하였으며, 실행속도를 향상시키기 위해 메모리상의 템플릿 자료구조를 재설계하였습니다. 템플릿 문서가 크고 복잡할 수록 실행속도의 개선 효과는 큽니다. 재설계된 템플릿 자료구조는 향후 기능 향상에 상당히 유연하게 대처할 수 있도록 설계된 것입니다.

1.0.0 버전부터는 실행속도보다는 각 클래스의 캡슐화에 중점을 두고 작성하였습니다. 그리고 FastTemplate로 작성된 이전 문서를 지원하기 위하여 hFastTemplate 클래스(class.hFastTemplate.php)를 추가하였습니다.

1.1.1 버전부터는 FastTemplate로 작성된 문서를 hTemplate에서 사용할 수 있도록 지원하던 클래스 파일 class.hFastTemplate.php를 삭제하였으며 따라서 1.1.1 이후 버전부터는 FastTemplate로 작성된 문서를 공식적으로 지원하지 않습니다.

1.2.0 버전에서는 템플릿을 불편없이 사용할 수 있도록 템플릿 파일 내에서 템플릿변수 별로 php 코드를 사용할 수 있도록 하는 필터기능, php 문서 파일의 include 기능 등을 포함시켰습니다.

여러가지 기능을 제공하기는 하지만 대부분 템플릿 문서를 작성하는데 필요한 기능들이며 php 문서에서의 문법은 매우 단순하여 define, assign, get_assign, output 4개의 함수와 생성자를 통한 환경설정이 전부입니다.

1.2.0 버전부터는 hTemplate에 php4와 php5에서 모두 동작하는 자체 출력버퍼 기능을 포함하면서 PHP 4.1.0버전부터 hTemplate을 사용할 수 있습니다.

캐시 저장매체로 파일시스템만 지원됩니다. 0.0.1 버전에서 잠깐 데이터베이스를 지원한 적이 있었으나 0.0.1과 0.0.2를 가지고 실험해 본 결과 데이터베이스가 별로 효율적이지 않다는 생각이 들어 데이터베이스용 후키캐시를 별도로 공개하지 않기로 하였습니다.

hTemplate 1.2.0 버전은 PHP 4.1.0 버전부터 현재 공개된 PHP 5.1.6 버전까지 정상적으로 동작합니다. hTemplate이 PHP 5 버전에서 동작한다고 해서 zend engine 2.0에서 새로이 제공하고 있는 객체 특성들을 이용하지는 않았습니다. 단지 하위 호환성을 위하여 에러만 발생하지 않도록 수정하였을 뿐입니다.

zend engine 2.0의 새로운 객체 특성 가운데 정적 멤버(static member)는 후키템플릿에서 꼭 필요한 특성인데 하위 호환성때문에 적용하지 못한 것이 무척 아쉽습니다. 향후 zend engine 2.0이 탑재된 PHP 5 버전 전용 hTemplate을 개발한다면 새로운 객체특성을 적용하여 현재 소스를 상당히 개선할 수 있으리라 봅니다.

답글 남기기