0

0

PHP模板之Smarty安装与使用入门教程

php中文网

php中文网

发布时间:2016-06-21 08:53:16

|

1383人浏览过

|

来源于php中文网

原创

  在利用php开发大型、交互式网站时,我们时常遇到与美工如何合作的问题,通常我们的解决方法是由美工设计页面后交付程序设计者进行开发,再交付美工对页面进行改善,来回重复好几回,如果遇到程序设计者对html不熟悉,对双方来说更是个痛苦的差事,效率也更低下,这时候如果有模板支持就显得非常重要。

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

准备工作

  1、选择安装Smarty的目录

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

立即学习PHP免费学习笔记(深入)”;

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

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

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

Smarty安装步骤

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

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

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

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

Smarty使用

1、创建相关目录

  由于在使用Smarty的过程中,Smarty会生成编译的模板文件以及其他配置文件、缓存文件,我们需要创建相关的目录。我在test\smarty目录下,另外创建了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做好目录限制访问工作。

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载

2、建立相关配置文件

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

1
2
3
4
5
6
7
8
9
10
11
12
13


include("./smarty/libs/Smarty.class.php");
define('SMARTY_ROOT', './smarty/tpls');
$tpl = new Smarty();
$tpl->template_dir = SMARTY_ROOT."/templates/";
$tpl->compile_dir = SMARTY_ROOT."/templates_c/";
$tpl->config_dir = SMARTY_ROOT."/configs/";
$tpl->cache_dir = SMARTY_ROOT."/cache/";
$tpl->caching=1;
$tpl->cache_lifetime=60*60*24;
$tpl->left_delimiter = ';
$tpl->right_delimiter = '}>';
?>

注释
第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类型的文件。

1
2
3
4
5
6
7
8
9
10
11

html>
head>
meta http-equiv="Content-type" content="text/html; charset=gb2312">
title>
{ $title }>
title>
head>
body>
{ $content }>
body>
html>

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

4、建立应用程序文件

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

1
2
3
4
5
6
7
8
9


include("smarty/main.php");

$tpl->assign("title", "leapsoul.cn为你展示smarty模板技术");

$tpl->assign("content", "leapsoul.cn通过详细的安装使用步骤为你展示smarty模板技术");

$tpl->display("leapsoul.tpl");
?>

注释

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

其他说明

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

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

  :PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

928

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

307

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

183

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

29

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

103

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

54

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

764

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

92

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
后盾网smaryt模板引擎视频教程
后盾网smaryt模板引擎视频教程

共14课时 | 2.7万人学习

smarty完全中文手册
smarty完全中文手册

共0课时 | 0.5万人学习

Smarty3.0模板引擎使用指南
Smarty3.0模板引擎使用指南

共11课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号