PHP Smarty模板引擎的安装和使用(新手必看)
MVC 设计模式要求将视图与业务逻辑代码分离。为了实现分离的效果,可以借助 Smarty 模板引擎。
Smarty 模板引擎提供了一套语法,用于嵌入 HTML 中输出数据。和 PHP 原生语法相比,Smarty 模板引擎的语法更加简单易懂,即使没有 PHP 基础的开发人员也可以快速上手。
Smarty 实现了 PHP 代码与 HTML 代码的分离,使 PHP 开发人员专注于数据的处理及功能模块的实现,网页设计人员专注于网页的设计与排版工作。
使用 Composer 可以安装 Smarty 模板引擎。在命令提示符窗口中,切换到 C:\web\www\myframe 目录,执行安装 Smarty 模板引擎的命令,具体命令如下:
安装 Smarty 模板引擎后,打开 vendor 目录,会看到里面新增了 smarty 目录,Smarty 模板引擎的依赖包保存在该目录中。
Smarty 的核心文件在 vendor\smarty\smarty\libs 目录下,该目录中的文件和目录如下表所示:
上面两张表仅列举了 Smarty 的常用语法和方法,Smarty 模板引擎还有很多其他功能。需要注意的是,Smarty 的语法和 PHP 的语法在某些地方是不同的,因此在使用时需要注意语法的规范性和兼容性。
Smarty 的语法和方法的使用都比较简单,这里便不花费大量篇幅讲解它们的格式,有需要的读者可以参考 Smarty 官方手册。
下面演示使用 Smarty 查询 student 数据表的数据。在 VS Code 编辑器中打开 C:\web\apache2.4\htdocs 目录,创建 smarty.php 文件,具体代码如下:
创建 student.html,具体代码如下:
使用 Smarty 模板引擎实现了视图与业务逻辑代码的分离,提高了开发效率和代码的可维护性。在生活中,我们也要善于利用现有的工具和资源不断提升自己,推动社会的良性发展。
Smarty 模板引擎提供了一套语法,用于嵌入 HTML 中输出数据。和 PHP 原生语法相比,Smarty 模板引擎的语法更加简单易懂,即使没有 PHP 基础的开发人员也可以快速上手。
安装Smarty
Smarty 是使用 PHP 语言开发的模板引擎,具有响应速度快、语句自由、支持插件扩展等特点。Smarty 实现了 PHP 代码与 HTML 代码的分离,使 PHP 开发人员专注于数据的处理及功能模块的实现,网页设计人员专注于网页的设计与排版工作。
使用 Composer 可以安装 Smarty 模板引擎。在命令提示符窗口中,切换到 C:\web\www\myframe 目录,执行安装 Smarty 模板引擎的命令,具体命令如下:
composer require smarty/smarty=~4.3上述命令执行成功后,打开 composer.json 文件,会看到该文件被自动添加了 Smarty 的相关配置,具体配置如下:
"require": { "smarty/smarty": "^4.3" }上述配置表示安装的 Smarty 模板引擎是 4.3 版本。
安装 Smarty 模板引擎后,打开 vendor 目录,会看到里面新增了 smarty 目录,Smarty 模板引擎的依赖包保存在该目录中。
Smarty 的核心文件在 vendor\smarty\smarty\libs 目录下,该目录中的文件和目录如下表所示:
名称 | 说明 |
---|---|
Autoloader.php | Smarty 中实现自动载入文件功能的类 |
bootstrap.php | 实现自动加载 Smarty |
debug.tpl | Smarty 中的提示信息模板文件 |
functions.php | 辅助函数文件 |
Smarty.class.php | Smarty 核心类文件,提供相关方法用于实现 Smarty 模板引擎的功能 |
plugins | 自定义插件目录,存放各类自定义插件的目录 |
sysplugins | 存放系统文件目录 |
Smarty的基本使用
Smarty 安装完成后,就可以使用 Smarty 了。在使用 Smarty 之前,先了解 Smarty 的常用语法和方法,具体如下面的两张表所示。语法 | 说明 |
---|---|
if 指令 | 条件判断 |
foreach 指令 | 循环展示数据 |
include 指令 | 引用其他模板文件 |
方法 | 说明 |
---|---|
assign() | 向模板页面分配变量 |
display() | 展示模板 |
fetch() | 将模板转化为字符串 |
block() | 定义一个区域块 |
上面两张表仅列举了 Smarty 的常用语法和方法,Smarty 模板引擎还有很多其他功能。需要注意的是,Smarty 的语法和 PHP 的语法在某些地方是不同的,因此在使用时需要注意语法的规范性和兼容性。
Smarty 的语法和方法的使用都比较简单,这里便不花费大量篇幅讲解它们的格式,有需要的读者可以参考 Smarty 官方手册。
下面演示使用 Smarty 查询 student 数据表的数据。在 VS Code 编辑器中打开 C:\web\apache2.4\htdocs 目录,创建 smarty.php 文件,具体代码如下:
<?php require_once('C:/web/www/myframe/vendor/smarty/smarty/libs/Smarty.class.php'); $dsn = 'mysql:host=localhost;port=3306;dbname=myframe;charset=utf8mb4'; $pdo = new PDO($dsn, 'root', '123456'); $res = $pdo->query('SELECT * FROM `student`'); $data = []; while ($row = $res->fetch(PDO::FETCH_ASSOC)) { $data[] = ['id'=>$row['id'], 'name'=>$row['name']]; } $smarty = new Smarty(); $smarty->assign('data', $data); $smarty->display('student.html');在上述代码中:
- 第 2 行代码用于引入 Smarty 类文件;
- 第 5~9 行代码用于查询 student 数据表的数据;
- 第 10 行代码用于实例化 Smarty 类;
- 第 11 行代码用于向模板发送数据;
- 第 12 行代码用于显示模板,模板的名称为 student.html。
创建 student.html,具体代码如下:
<body> <table border="1"> <tr><th>id</th><th>name</th></tr> {foreach $data as $v} <tr><td>{$v.id}</td><td>{$v.name}</td></tr> {/foreach} </table> </body>在上述代码中,第 4~6 行代码使用 foreach 语句输出学生信息。
使用 Smarty 模板引擎实现了视图与业务逻辑代码的分离,提高了开发效率和代码的可维护性。在生活中,我们也要善于利用现有的工具和资源不断提升自己,推动社会的良性发展。