백엔드 개발 PHP 튜토리얼 【原创】Smarty 2+ 和 Smarty 3+ 比较(一):smarty执行机制

【原创】Smarty 2+ 和 Smarty 3+ 比较(一):smarty执行机制

Jun 23, 2016 pm 01:18 PM

smarty是一种模板引擎——即分离后台逻辑和前端样式,源码为PHP编写。官网地址:http://www.smarty.net/

下载最新的3.1版本后,会有demo文件夹,直接在机器的web目录下执行demo就是一个简单的smarty运用。按照文档或者仿照demo里面的配置,使用smarty起来非常简单。

基本的文件目录和代码如下:

templates和templates_c两个文件夹配置必不可少,templates是html模板的目录,templates_c是把HTML编译成可执行的PHP文件目录。

smarty中两个基本函数assign和display,assign是传参(确切应该是:聚合前台需要的数据,并以k-v形式赋值在唯一的一个数组中),display是找到页面显示(接收assign的数组,输出数组数据显示页面)。归根到底smarty最后执行的是编译后的PHP文件,配合PHP的echo、foreach等原生函数和语法输出内容,在templates_c文件夹下面,存放的都是PHP结尾的文件。

smarty2+和smarty3+执行的基本机制如图:
로그인 후 복사

更简单的过程如下:

编译后的index.tpl.php文件:

<html>  <head></head>  <body>    <?php      foreach($arr as $key=>$val){        echo "<p>".$key."--".$val."</p>";      }    ?>  </body>  </html>
로그인 후 복사

最后index.php可运行文件:

$arr = array("name"=>"abc","tel"=>"2222","age"=>"2111");  //1、把html编译为PHP(省略掉复杂的smarty标签替换为PHP标签)  //2、省略掉中间复杂的编译文件命名、文件引入/写入和cache情况  //3、include 编译后的PHP文件,并执行,注意此时的$arr数组可以在index.tpl.php中使用输出  include "index.tpl.php";
로그인 후 복사

但是smarty3+版本相比2+而言,“100%重写”,无论是在PHP新语法还是编译执行性能上,下面是2+和3+版本分别执行官方demo中的分析图,左为2.6.18版本,右侧为3.1.30版本:

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Instagram API 소개 Instagram API 소개 Mar 02, 2025 am 09:32 AM

Instagram API 소개

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

라 라벨에서 알림 라 라벨에서 알림 Mar 04, 2025 am 09:22 AM

라 라벨에서 알림

See all articles