PHP 템플릿 엔진의 원리를 자세히 설명하는 기사(코드 예제 포함)

藏色散人
풀어 주다: 2023-04-11 07:26:02
앞으로
3527명이 탐색했습니다.

웹 프로젝트 개발은 일반적으로 두 부분으로 나누어집니다. 한 부분은 HTML, CSS, JS를 사용하여 작성된 GUI, 즉 인터페이스와 아트이고 다른 부분은 PHP를 사용하여 작성된 비즈니스 로직, 즉 프로그램 및 함수입니다. . 템플릿 엔진은 두 부분을 연결하는 "브리지"로, PHP의 원본 출력을 인터페이스 스타일로 로드한 후 출력하는 여러 메서드를 정의하는 PHP 클래스로 이해될 수 있습니다.

템플릿을 사용하기 전에 작성한 코드는 다음과 같습니다.

<?php

$title = “标题”;

$content = “内容”;

?>

<html>

<head><title><?php echo $title; ?></title></head>

<body><?php echo $content; ?></body>

</html>
로그인 후 복사

이렇게 하면 예술과 논리가 분리되지 않습니다. 간단히 말해서 PHP 프로그래머는 프로그램을 작성할 뿐만 아니라 예술에도 능숙해야 합니다. 그래서 이것은 종종 매우 어렵습니다. 이것은 결합되어야 합니다. 두 부분은 별도로 작동합니다.

템플릿 엔진의 원리를 더 잘 이해하기 위해 간단한 템플릿 엔진을 직접 예시로 만들어 보겠습니다.

앞서 언급했듯이 웹 프로젝트 개발은 GUI와 비즈니스 로직의 두 부분으로 나누어지므로 두 개의 폴더를 만듭니다. 하나는 템플릿을 저장하기 위한 "templates"라는 폴더이고, 새로운 tpl.html 파일을 생성하고, 다른 하나는 "PHP"라는 이름의 폴더입니다. " , 비즈니스 로직을 저장하고 새 index.php 파일을 생성합니다.

tpl.html 파일 코드는 일반적으로 다음과 같습니다.

<html>

<head><title><{$title}></title></head>

<body><{ $content;}></body>

</html>
로그인 후 복사

이전 코드와 비교하면 tpl.html에는 html 코드만 있고 php 코드는 없지만 새 태그가 추가된 것을 볼 수 있습니다. 정의된 경우, 내부 콘텐츠는 템플릿 엔진에 의해 컴파일된 후에만 인식될 수 있으며, 컴파일된 파일은 "templates_c" 폴더에 저장됩니다. 이 파일은 주로 인터페이스 디자인에 사용되며 수많은 CSS, JS 및 기타 기술을 사용합니다.

이때 tpl.html과 index.php는 여전히 분리되어 있고 서로 간섭하지 않으므로 "브리지" 연결, 즉 실제로 PHP 클래스인 템플릿 엔진이 필요하므로 다음을 수행할 수 있습니다. 여기에 mytpl.class.php PHP 파일을 만듭니다.

mytpl.class.php 파일은 일반적으로 MyTpl 클래스를 정의합니다. tpl.html에 사용자 정의 콘텐츠 태그의 매개변수를 저장하려면 배열 tpl_var[]을 정의해야 합니다. 이러한 메소드의 주요 목적은 tpl.hml의 인식할 수 없는 콘텐츠 태그를 PHP 문으로 변환한 다음 이를 "templates_c" 폴더 아래의 tpl_c.html에 작성하는 것입니다.

일반적으로 tpl_c.html 파일의 코드는 다음과 같습니다.

<html>

<head><title><?php echo $this->tpl_var[“title”]; ?></head>

<body><?php echo $this->tpl_var[“content”]; ?}></body>

</html>
로그인 후 복사

위의 코드는 사용자 정의 컨텐츠 태그가 PHP 문으로 대체되었기 때문에 인식이 가능한 것을 알 수 있는데, 그 값은 무엇입니까 ​​​​제목 및 내용 이전에 생성된 index.php가 이번에 작동하게 될지는 아직 알 수 없습니다.

index.php 일반적으로 코드는 다음과 같습니다.

include  “tpl.class.php文件”;//加载模板引擎

$tpl = new MyTpl();//实例化一个模板类

$title = “标题”;

$content = “内容”;

$tpl->assign(“title”,$title);//调用模板类中的方法,分配变量

$tpl->assign(“content”,$content);

$tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容
로그인 후 복사

위 코드는 간단한 설명 코드입니다. , 변수의 값은 직접 정의되거나 데이터베이스에서 얻을 수 있습니다. 또한 이 파일은 앞서 언급한 비즈니스 로직인 일부 복잡한 PHP 프로그램을 작성하는 데에도 사용할 수 있습니다.

이런 방식으로 GUI 작업과 비즈니스 로직이 분리됩니다. 아트 디자이너는 웹 인터페이스를 변경하기 위해 템플릿 파일만 작성하면 되고, PHP 프로그래머는 자신의 프로그램 작성에 집중할 수 있습니다.

회사에는 일반적으로 자체 템플릿 엔진이 있으며, Smarty와 같이 이미 시장에 매우 성숙한 템플릿 엔진이 있기 때문에 템플릿 엔진을 직접 작성할 필요는 없습니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP 템플릿 엔진의 원리를 자세히 설명하는 기사(코드 예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!