스마티 템플릿 엔진을 모델로 한 템플릿은 TPL이라고 합니다.
템플릿이라고 부르는 것은 주로 HTML 마크업으로 구성된 언어로 작성된 페이지이지만 동적으로 생성된 콘텐츠(파싱 태그)를 나타내는 방법도 있는 웹 템플릿입니다. 템플릿 엔진은
템플릿에서 HTML 코드를 생성하고 포함할 동적 콘텐츠를 지정할 수 있게 해주는 소프트웨어 라이브러리입니다.
1 템플릿 엔진의 특징:
1. 분리 장려: 전체 시스템의 가독성과 유지 관리성을 향상시킵니다.
2. 분업 촉진: 프로그래머와 아티스트가 자신의 디자인에 집중할 수 있도록 합니다.
3. PHP보다 구문 분석이 더 쉽습니다. 컴파일된 파일과 캐시된 파일은 더 빠르게 로드되고 더 적은 리소스를 차지합니다.
4. 보안 강화: 우발적인 삭제 및 우발적인 액세스를 방지하기 위해 템플릿 디자이너가 안전하지 않은 작업을 수행하는 기능을 제한할 수 있습니다.
2가지 템플릿 엔진 제품:
PHP에는 Smarty, Heyes Templates Class,
FastTemplate 등 팀에서 특별히 개발한 다양한 템플릿 엔진이 있습니다. 이러한 템플릿 엔진을 직접 사용하면 위의
기능 중 많은 부분을 완벽하게 구현할 수 있습니다. 그러나 초보자의 경우 템플릿 엔진의 원리를 이해하면 템플릿을 사용해야 하는 이유에 대한 더 깊은 이해를 제공할 수 있습니다.
4. TPL 템플릿 엔진 생성
1. 초기 템플릿에 필요한 폴더와 파일을 생성합니다a) 비즈니스 로직 작성에 사용되는 index.php 메인 파일.b) template.inc.php 템플릿 초기화 파일로, 초기 템플릿 정보에 사용됩니다.
c) 템플릿 디렉토리에는 모든 템플릿 파일이 저장됩니다.
d) template_c 디렉토리에는 모든 컴파일된 파일이 저장됩니다.
e) 캐시 디렉토리에는 모든 캐시 파일이 저장됩니다.
f) 포함 디렉토리에는 모든 클래스 파일이 저장됩니다.
g) config 디렉토리는 템플릿 시스템 변수 구성 파일을 저장합니다.
<span>//</span><span>设置编码为utf-8</span>header(<span>'</span><span>Content-Type:text/html;charset=utf-8</span><span>'</span><span>); </span><span>//</span><span>网站根目录</span>define(<span>'</span><span>ROOT_PATH</span><span>'</span><span>,dirname(__FILE__)); </span><span>//</span><span>存放模板文件夹</span>define(<span>'</span><span>TPL_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/templates/</span><span>'</span><span>); </span><span>//</span><span>编译文件夹</span>define(<span>'</span><span>TPL_C_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/templates_c/</span><span>'</span><span>); </span><span>//</span><span>缓存文件夹</span>define(<span>'</span><span>CACHE_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/cache/</span><span>'</span>);3 포함 폴더에 있는 Templates.class.php — 여부를 확인하기 위해 추가됨 해당 디렉토리가 존재함 Method
<span>//</span><span>创建一个构造方法</span><span>public</span><span> function __construct() { </span><span>//</span><span>验证一下目录是否存在</span><span>if</span> (!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR) || !<span>is_dir(CACHE_DIR)) { exit(</span><span>'</span><span>ERROR:模板文件夹或者编译文件夹或者缓存文件夹没有创建!</span><span>'</span><span>); } }</span>4 samrty에도 있습니다. 디스플레이 프로토타입 방식
계속
<span>//</span><span>将模板导入到php文件中</span><span>public</span><span> function display($_file) { </span><span>//</span><span>设置模板文件的路径</span> $_tplFile =<span> TPL_DIR.$_file; </span><span>//</span><span>判断模板文件是否存在</span><span>if</span> (!<span>file_exists($_tplFile)) { exit(</span><span>'</span><span>ERROR:模板文件不存在!</span><span>'</span><span>); } </span><span>//</span><span>设置编译文件的文件名</span> $_parFile = TPL_C_DIR.md5($_file).$_file.<span>'</span><span>.php</span><span>'</span><span>; </span><span>//</span><span>判断编译文件是否存在,模板文件是否修改过</span><span>if</span> (!file_exists($_parFile) || filemtime($_parFile) <<span> filemtime($_tplFile)) { </span><span>//</span><span>生成编译文件</span><span> file_put_contents($_parFile,file_get_contents($_tplFile)); } </span><span>//</span><span>载入编译文件</span><span> include $_parFile; } </span><span>//</span><span>引入模板类</span>require ROOT_PATH.<span>'</span><span>/includes/Template.class.php</span><span>'</span><span>; </span><span>//</span><span>实例化模板类</span>$_tpl = <span>new</span><span> Template(); </span><span>//</span><span>载入index.tpl</span>$_tpl->display(<span>'</span><span>index.tpl);</span>위 내용은 PHP 템플릿 엔진 1(35)의 수동 개발에 대한 내용을 담고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.