PHP笔记之Smarty模板引擎(1)

目录

模板引擎的工作原理

1、如何实现HTML代码和PHP代码分离?

2、如何完全去除视图文件中的PHP标记?

3、常用PHP模板引擎介绍

Smarty快速入门

1、Smarty是什么?

2、Smarty下载和目录结构

3、实例:第1个Smarty案例

Smarty配置

1、Smarty左右定界符配置

2、Smarty常用目录配置

Smarty模板(视图)中的变量

1、Smarty普通变量

2、Smarty保留变量

(1)Smarty页面请求保留变量(注:下面的变量是固定的)

(2)访问PHP的预定义常量

(3)Smarty时间戳保留变量

3、Smarty配置文件变量

(1)配置文件变量概述

(2)定义配置文件

(3)访问Smarty配置文件变量

(4)配置文件分组


主要内容:

 

 



模板引擎的工作原理

1、如何实现HTML代码和PHP代码分离?

实现HTML代码和PHP代码分离的目的是:实现前端设计人员和PHP程序员的分离。

多数Web开发人员要么是精通网页设计,能够设计出漂亮的网页外观,但是编写的PHP代码很糟糕;要么仅熟悉PHP编程,能够写出健壮的PHP代码,但是设计的网页外观很难看。具备两种才能的开发人员很少见。

将PHP和HTML混合页面,分成两个独立的页面:

一个是HTML静态页面(视图文件、模板文件),扩展名是.html,包含HTML、CSS、JS

一个是纯PHP程序页面(控制器文件),扩展名是.php,主要PHP代码。

运行时,将HTML文件代码,包含到PHP文件中。

2、如何完全去除视图文件中的PHP标记?

  • 首先,视图中的典型PHP代码是这样的:<?php echo $name ?>
  • 再者,前端工程师能看得懂的、比较喜欢的HTML标签形式的代码是这样的:{$name}
  • 最后,我们把 {$name} 替换成 <?php echo $name ?>,就实现了PHP代码和HTML代码的完全分离。
  • 模板引擎的原理:就是替换,就是将 {$name} 转换成 <?php echo $name?> 才能被PHP识别并解析。
  • 如何替换呢?使用PHP替换函数str_replace(),将 ”{“ 替换成 ”<?php echo “,将”}”替换成”?>”。

3、常用PHP模板引擎介绍

  • Smarty,是模板引擎鼻祖。其它的模板引擎都是基 于Smarty开发的。
  • Template Lite
  • TinyButStrong
  • XTemplate
  • Savant
  • phemplate
  • Dwoo
  • Sugar
  • Twig,symfony框架默认的模板引擎;
  • FXL Template
  • H2o
  • ns-template
  • Blade:laravel框架默认的模板引擎。

Smarty快速入门

1、Smarty是什么?

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

2、Smarty下载和目录结构

 

3、实例:第1个Smarty案例

Smarty配置

1、Smarty左右定界符配置

  • 在Smarty中,默认使用 "{" 和 "}" 作为变量的定界符。但这样,会与CSS、JS中的大括号冲突。
  • 左定界符:$smarty->left_delimiter = "string"
  • 右定界符:$smarty->right_delimiter = "string"

2、Smarty常用目录配置

目录类别

默认目录

修改方法

查看方法

Smarty默认模板目录

./templates

$smarty->setTemplateDir()

$smarty->getTemplateDir()

Smarty默认配置目录

./configs

$smarty->setConfigDir()

$smarty->getConfigDir()

Smarty默认编译目录

./templates_c

$smarty->setCompileDir()

$smarty->getCompileDir()

Smarty默认缓存目录

./cache

$smarty->setCacheDir()

$smarty->getCacheDir()

Smarty默认插件目录

./libs/plugins

$smarty->setPluginsDir()

$smarty->getPluginsDir()

查看Smarty常用目录配置:Smarty类文件中的__construct()构造方法

 

Smarty模板(视图)中的变量

1、Smarty普通变量

  • PHP中的所有变量,都可以在视图文件中使用;
  • 使用 $smarty->assign() 向Smarty模板传递普通变量;
  • 使用 $smarty->display() 显示指定的视图文件;
  • 在Smarty模板中,使用"[ ]"或点"."来访问数组元素
  • 在Smarty模板中,使用"->"来访问对象的属性和方法。

2、Smarty保留变量

(1)Smarty页面请求保留变量(注:下面的变量是固定的)

  • {$smarty.get} 访问$_GET数组
  • {$smarty.post} 访问$_POST数组
  • {$smarty.request} 访问$_REQUEST数组
  • {$smarty.cookie} 访问$_COOKIE数组
  • {$smarty.session} 访问$_SESSION数组
  • {$smarty.server} 访问$_SERVER数组
  • {$smarty.files} 访问$_FILES数组

注:

1.地址栏的?username=admin&password=123456是自己临时写的,为了测试Smarty保留变量

2.controller.php中的$smarty与view.html中的$smarty没有任何关系,左边是自己定义的变量,右边是Smarty保留变量

(2)访问PHP的预定义常量

语法:{$smarty.const.预定义常量}

(3)Smarty时间戳保留变量

语法:{$smarty.now}

3、Smarty配置文件变量

(1)配置文件变量概述

网站上有一些比较简单的变量信息,美工人员可以自行定义并调用。这样可以脱离程序员的依赖,工作比较有主动权。

(2)定义配置文件

  • 配置文件默认目录:./configs
  • 设置配置文件目录:$smarty->setConfigDir()
  • 读取配置文件目录:$smarty->getConfigDir()
  • 配置文件扩展名:.ini或.conf
  • 配置文件中注释:#
  • 配置文件变量分组:[ ]
  • 语法格式:配置名 = 变量值
  • 变量不带$符号,变量值不带引号

(3)访问Smarty配置文件变量

  • 载入配置文件:{config_load file = “配置文件路径”}
  • 语法格式一:{#配置文件变量名#}
  • 语法格式二:{$smarty.config.配置变量}

(4)配置文件分组

载入分组配置文件变量:{config_load file = “配置文件路径” section = “分组名”}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Smarty模板引擎的学习笔记,我可以为您提供以下内容: 1. Smarty是什么? Smarty是一个用PHP编写的模板引擎,它将PHP代码与HTML代码分离,使得代码更易于维护和设计。Smarty使用一套模板标签来代替PHP代码,这些标签可以在模板中使用,以生成最终的HTML代码。 2. Smarty的优势 - 简单易用:Smarty的模板标签简单易懂,可以快速上手。 - 分离代码:SmartyPHP代码与HTML代码分离,使得代码更易于维护和设计。 - 可扩展性:Smarty支持插件机制,可以方便地扩展和定制功能。 - 性能优化:Smarty支持缓存机制,可以提高页面加载速度。 3. Smarty的基本语法 Smarty的模板标签由大括号包围,例如:{tag}。以下是Smarty的一些基本标签: - 输出变量:{$variable} - 条件语句:{if $variable == 'value'}{/if} - 循环语句:{foreach $array as $key => $value}{/foreach} - 引入文件:{include file="filename.tpl"} 4. Smarty的高级功能 - 模板继承:Smarty支持模板继承,可以减少模板重复代码。 - 插件机制:Smarty支持插件机制,可以方便地扩展和定制功能。 - 缓存机制:Smarty支持缓存机制,可以提高页面加载速度。 - 自定义函数:Smarty支持自定义函数,可以方便地扩展其功能。 以上是我为您提供的Smarty模板引擎学习笔记,希望对您有所帮助。如果您有其他问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值