php教程 php手册 PHP模板之Smarty教程

PHP模板之Smarty教程

Jun 13, 2016 am 11:13 AM
php smarty 오픈 소스 엔진 우리를 공급 지도 시간 주형 ~의 알다 지역 사회 언어

我们知道PHP语言作为开源社区的一员,提供了各种模板引擎,如FastTemplate,Smarty,SimpleTemplate等,而Smarty是现在使用得比较多的PHP模板引擎,今天和大家分享在PHP开发中如何安装与使用Smarty,也算是对Smarty的入门学习。

一、准备工作

1、选择安装Smarty的目录

如果拥有服务器权限,考虑到安全性可以选择将Smarty安装在WEB程序文档目录之外的地方,然后通过将Smarty安装目录地址包含在PHP.INI文件中的include_path选项。

如果是虚拟主机权限,或者好几个项目,可以将Smarty安装在各自的项目目录中,在require Smarty类文件,也可以使用Smarty模板引擎。当然为了安全考虑,你可以通过apache禁止相关目录访问。

另外这两种Smarty安装方式在移植性方面有所区别,第一种方式需要保证每台服务器有相同的Smarty配置,第二种方式对每台服务器配置没有影响。你可以根据各自的需要选择Smarty的安装方式。

2、下载Smarty,请点击这里下载Smarty,我选择的是Smarty-2.6.25

Smarty安装步骤

1、解压下载的Smarty-2.6.25压缩包

2、拷贝libs文件夹到WEB程序目录下,我的目录为testsmarty

Linux下的安装方法可以参考这里。

在安装完Smarty模板后,我们开始简单使用Smarty。

三、Smarty使用

1、创建相关目录

由于在使用Smarty的过程中,Smarty会生成编译的模板文件以及其他配置文件、缓存文件,我们需要创建相关的目录。我在testsmarty目录下,另外创建了tpls目录,并在tpls目录下创建templates、templates_c、configs、cache目录。为什么需要创建这些目录呢?打开Smarty.class.php文件,我们可以看到Smarty类定义了部分的成员属性。

$template_dir:设定所有模板文件都需要放置的目录地址。默认情况下,目录是:“./templates”,也就是在PHP执行程序同一个目录下寻找该模板目录。

$compile_dir:设定Smarty编译过的所有模板文件的存放目录地址。默认目录是:“./templates_c”,也就是在PHP执行程序同一个目录下寻找该编译目录。如果你在Linux服务器上创建这个目录,你还需要修改此目录的权限,使它有写的权限。

$config_dir:设定用于存放模板特殊配置文件的目录,默认目录是:“./configs”,也就是在PHP执行程序同一个目录下寻找该配置目录。

$cache_dir:在启动缓存特性的情况下,这个属性所指定的目录中放置Smarty缓存的所有模板。默认目录是:”./cache”,也就是在PHP执行程序同一个目录下寻找该缓存目录。你也可以用你自定义的缓存处理函数来控制缓存文件,它将会忽略这项设置。同样如果你在Linux服务器上创建这个目录,你还需要修改此目录的权限,使它有写的权限。

为了系统安全和移植性考虑,建议不要将这些目录建立在PHP执行程序同一目录下,可以将它建立在PHP执行程序目录之外,如果已建立在PHP执行程序同一目录下,可以通过Apache做好目录限制访问工作。

2、建立相关配置文件

我们需要创建一个配置文件,来覆盖Smarty类的默认成员属性,并命名为main.php,保存在smarty目录下,以后哪个脚本需要使用Smarty,我们只要把main.php包含进来即可。

<ol class="dp-c">
<li class="alt"><span><span>  </span></span></li>
<li>
<span class="keyword">include</span><span>(</span><span class="string">"./smarty/libs/Smarty.class.php"</span><span>);  </span>
</li>
<li class="alt">
<span>define(</span><span class="string">'SMARTY_ROOT'</span><span>, </span><span class="string">'./smarty/tpls'</span><span>);  </span>
</li>
<li>
<span class="vars">$tpl</span><span> = </span><span class="keyword">new</span><span> Smarty();  </span>
</li>
<li class="alt">
<span class="vars">$tpl</span><span>-&gt;template_dir = SMARTY_ROOT.</span><span class="string">"/templates/"</span><span>;  </span>
</li>
<li>
<span class="vars">$tpl</span><span>-&gt;compile_dir = SMARTY_ROOT.</span><span class="string">"/templates_c/"</span><span>;  </span>
</li>
<li class="alt">
<span class="vars">$tpl</span><span>-&gt;config_dir = SMARTY_ROOT.</span><span class="string">"/configs/"</span><span>;  </span>
</li>
<li>
<span class="vars">$tpl</span><span>-&gt;cache_dir = SMARTY_ROOT.</span><span class="string">"/cache/"</span><span>;  </span>
</li>
<li class="alt">
<span class="vars">$tpl</span><span>-&gt;caching=1;  </span>
</li>
<li>
<span class="vars">$tpl</span><span>-&gt;cache_lifetime=60*60*24;  </span>
</li>
<li class="alt">
<span class="vars">$tpl</span><span>-&gt;left_delimiter = </span><span class="string">'<span>;  </span></span>
</li>
<li>
<span class="vars">$tpl</span><span>-&gt;right_delimiter = </span><span class="string">'}&gt;'</span><span>;  </span>
</li>
<li class="alt"><span>?&gt; </span></li>
</ol>
로그인 후 복사

注释:

第1-8行:主要定义一个smarty对象,同时设定模板文件、编译文件、缓存文件、配置文件的存放目录,覆盖Smarty.class.php中的默认值。

第9-10行:设定开启缓存,同时设定缓存的有效时间为1天。

知识点:$caching用来设置是否开启缓存功能。默认值设为0或无效。你也可以为同一个模板设有多个缓存,当值为1或2时启动缓存。1告诉Smarty使用当前的$cache_lifetime变量判断缓存是否过期。2告诉Smarty使用生成缓存时的cache_lifetime值。建议在项目开发过程中关闭缓存,将值设置为0

第11-12行:设置smarty语言的左右结束符,我们知道大括号是smarty的默认定界符,但在和javascript、css等结合时可能会产生冲突,所以这里我们设定为。

3、建立一个模板文件

一般情况下在美工页面设计完毕后,双方的交集点是模版文件,双方约定后,程序员不需要花太大的精力在前台,这就是使用Smarty模板引擎进行开发的好处。

我们首先建立一个简单的模版文件,名为leapsoul.tpl,你可在html文件中加入smarty变量后将文件另存为tpl类型的文件。

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span class="tag-name">html</span><span class="tag">&gt;</span><span> </span></span></span></li>
<li><span class="tag"><span class="tag-name">head</span><span class="tag">&gt;</span><span> </span></span></li>
<li class="alt"><span class="tag"><span class="tag-name">meta</span><span> </span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">"Content-type"</span><span> </span><span class="attribute">content</span><span>=</span><span class="attribute-value">"text/html; charset=gb2312"</span><span class="tag">&gt;</span><span> </span></span></li>
<li><span class="tag"><span class="tag-name">title</span><span class="tag">&gt;</span><span>   </span></span></li>
<li class="alt"><span class="tag"><span>{ $title }</span><span class="tag">&gt;</span><span> </span></span></li>
<li>
<span class="tag"></span><span class="tag-name">title</span><span class="tag">&gt;</span><span>   </span>
</li>
<li class="alt">
<span class="tag"></span><span class="tag-name">head</span><span class="tag">&gt;</span><span>   </span>
</li>
<li><span class="tag"><span class="tag-name">body</span><span class="tag">&gt;</span><span>   </span></span></li>
<li class="alt"><span class="tag"><span>{ $content }</span><span class="tag">&gt;</span><span>   </span></span></li>
<li>
<span class="tag"></span><span class="tag-name">body</span><span class="tag">&gt;</span><span>   </span>
</li>
<li class="alt">
<span class="tag"></span><span class="tag-name">html</span><span class="tag">&gt;</span><span> </span>
</li>
</ol>
로그인 후 복사

注释:在这个tpl文件中设定了title和content两个smarty变量,文件保存为leapsoul.tpl,同时将其保存在testsmartytplstemplates模板文件目录下。

4、建立应用程序文件

模版文件类似于一个表现层,在建立完模板文件后,我们需要一个应用程序去驱动表现层,应用程序文件定义为smarty.php。

<ol class="dp-c">
<li class="alt"><span><span>  </span></span></li>
<li>
<span class="keyword">include</span><span>(</span><span class="string">"smarty/main.php"</span><span>);  </span>
</li>
<li class="alt">
<span class="vars">$tpl</span><span>-&gt;assign(</span><span class="string">"title"</span><span>, </span><span class="string">"leapsoul.cn为你展示smarty模板技术"</span><span>);  </span>
</li>
<li>
<span class="vars">$tpl</span><span>-&gt;assign(</span><span class="string">"content"</span><span>, </span><span class="string">"leapsoul.cn通过详细的安装使用步骤为你展示smarty模板技术"</span><span>);  </span>
</li>
<li class="alt">
<span class="vars">$tpl</span><span>-&gt;display(</span><span class="string">"leapsoul.tpl"</span><span>);  </span>
</li>
<li><span>?&gt; </span></li>
</ol>
로그인 후 복사

注释:

在这段代码中我们主要用到smarty中的两个函数assign和display,assign你可以理解为为变量赋值,display主要是用来将网页输出。更多smarty函数今后会详细介绍。

其他说明

由于我们开启了缓存功能,有兴趣的朋友可以打开cache和templates_c,cache目录存放了这个模板的缓存文件,文件开头部分有缓存信息,如文件的生成时间和过期时间等,其他的和一般的HTML文件没有多大的区别,而templates_c存放了模板经过编译后的PHP执行文件。

至此一个简单入门的Smarty模板应用实例就算介绍完成了。

原文地址:http://www.leapsoul.cn/?p=405


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

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

CakePHP 날짜 및 시간

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

CakePHP 프로젝트 구성

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

CakePHP 파일 업로드

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

CakePHP 라우팅

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP 토론

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP 빠른 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

See all articles