Download the PHP package ajiho/think-smarty without Composer
On this page you can find all versions of the php package ajiho/think-smarty. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ajiho/think-smarty
More information about ajiho/think-smarty
Files in ajiho/think-smarty
Package think-smarty
Short Description Smarty integration for thinkphp6
License MIT
Homepage https://gitee.com/ajiho/think-smarty
Informations about the package think-smarty
think-smarty
基于thinkphp6封装的smarty模板引擎
为什么要封装think-smarty
虽然现在流行前后端分离,但是有时难免要用一下mvc这种开发方式做一些小项目,但是think
php的模板引擎(ThinkTemplate)
在phpstorm
中格式化html代码时会各种代码错乱和报错,开发起来特别闹心
ThinkTemplate
think-smarty
think-smarty的优点
- smarty是一款历史较长、经过多年发展和优化的模板引擎
- smarty是目前市面上知名的三大php模板引擎之一(Smarty、Twig、Blade)
- smarty由于长期稳定的使用和开发,Smarty可以提供较高的稳定性和可靠性
- phpstorm官方内置支持smarty语法高亮,格式化,折叠
- think-smarty会自动根据smarty官方的更新而下载最新的稳定版
- think-smarty简化手动集成的繁琐步骤、配置,开箱即用
- thinkphp框架从6.x开始官方默认就不集成模板引擎,意味着你可以安装自己喜欢的模板引擎(think-smarty是个不错的选择)
安装
配置文件
安装完毕后会自动生成/config/smarty.php
phpstorm设置
然后根据配置文件smarty.php
对phpstorm
进行相应的设置,就可以舒适的开发啦
ctrl+alt+s
,搜索smarty
就可以打开如下设置面板
注意:设置后要重启phpstorm才会生效
助手函数
函数名 | 描述 |
---|---|
smarty | 返回smarty对象(可用于调用smarty实例的一些属性和方法等) |
smarty_assign | 给视图文件赋值 |
smarty_fetch | 返回一个模板解析后的字符串 |
smarty_display | 直接输出模板到客户端 |
模板变量
模板赋值
保留变量
Smarty
提供了一个保留变量$smarty
,可以用于一些原生php的常用的系统变量的获取
但是对于thinkphp框架我们知道它的SESSION
或者一些路由参数,我们用原生的php
是获取不到的,必须要用框架的方法才能获取,因此think-smarty
也保留了一个
全局变量$think
(相当于应用实例$app),我们可以用它来快速获取到框架相关的东西
它的原理是其实就是类似下面的操作
因此你要是想对你的应用进行全局变量的赋值,可以创建一个BaseController控制器在构
造函数中使用smarty_assign
方法赋值即可
模板渲染
为了更好的理解think-smarty
设计的目录结构,我们先看一看,Smarty
的原生集成
所以你项目的目录结构可能是下面这样
通过以上示例,我们发现Smarty
是有自定义自己的配置、插件、编译、缓存、模板目录功能的,虽然
配置、和插件功能用到的几率比较低,但是think-smarty
的封装不会阉割smarty的功能,
因此think-smarty
对配置、插件、编译、缓存、模板目录在thinkphp6.x中做了最佳实践。
对于缓存和编译目录,放到了项目的runtime
目录方便项目上线时只要统一给该目录设置
读写权限即可。
如果是多应用模式,会自动加上应用名称作为区分
模板路径
对于模板、配置、插件目录默认情况下,think-smarty会自动定位,优先定位应用目
录下的view
目录作为smarty的工作空间目录
单应用模式
多应用模式
第二种方式是视图文件和应用类库文件完全分离,统一放置在根目录下的view目录。
单应用模式
多应用模式
模板渲染
PS:smarty_display()
方法如果是在最后一行可以省略return
跨应用渲染模板
如果你的模板文件位置比较特殊或者需要自定义模板文件的位置,可以采用下面的方式处理
只要通过/
开头的表示从整个项目根目录开始查找模板文件
资源类型
我们知道Smarty支持指定资源类型渲染 https://www.smarty.net/docs/zh_CN/resources.tpl
也支持指定任意的绝对路径
直接渲染内容
输出替换
smarty.php配置文件中添加替换规则即可
利用smarty的特性-conf配置文件
static_path.conf的内容如下
在tpl模板中使用方式有两种方法来读取配置
反馈
开发过程发现有任何问题,欢迎大家提交Issue。