mysql模板引擎有哪些_ecshop用的是什么模板引擎?
类似Smarty/ECShop这类模板的原理
1. 首先是编译模板
ECShop/Smart是利用PHP引擎,所以编译的结果是一个PHP文件,其编译过程就是将分隔符{}替换成PHP的标准分隔符,将$var替换
成echo $var; 或者print $var;将其他的比如foreach和if等也替换成标准的PHP语法。将{include
file…}之类的则替换成标准的PHP的inlcude …其余都是等效替换。
2. 其次是生成编译结果
编译结果是PHP文件,并且编译结果可以重用,所以这种文件会存到临时缓存目录里面。
3. 利用PHP引擎执行结果
ECShop的模板原理和上面基本类似,就是在编译的时候和Smarty模板有所修改,比较重要的有以下几点:
1. 模板的执行流程
$smarty->display $smarty->fetch返回HTML结果(所有模板)
$smarty->fetch_str (先编译成PHP、在给变量赋值、计算结果)
$smarty->smarty_prefilter_preCompile(编译成PHP)
$smarty->select(计 算每一个变量、表达式的结果,替换成标准PHP语法)
这一步是通过正则 实现的,匹配每一个{},将结果传给 $smarty->select,改方法通过switch/case逐一分析,替换成对应的表达式。
$smarty->get_para $smarty->select通过调用get_para来实现获取具体变量的值。
$smarty->get_val而$smarty->get_para通过get_val来计算最终变量的值。
$smarty->_eval替换成标准的PHP文件后通过eval来执行结果。
2. Lbi文件替换
在dwt文件中,类似这样代码中间的所有的代码 被替换成一个 {include file /library/xx.lbi}
3. Editable的region替换
在dwt文件中,类似中间的内容,都被动态替换。
替换原理
首先是get_dyna_libs($theme $tmp)函数得到当前theme下$tmp文件的所有动态区域,该函数读取数据库中的记录,按照后台设置的顺序排序。
返回的每个区块有三个参数,ID、Number、Type。
ID是标识,Number表示插入的个数,Type有1、2、3、4,分别代表:分类的商品、品牌的商品、文章列表、广告位。
然后把每个里面的内容全部替换。
4. 自定义函数等
如上面所说,想增加自定义函数必须修改cls_template中的get_val方法(可以继承),添加一些模板的自定义标签,需要修改
cls_template 中的select方法,比如ECShop中自定 义的insert、insert_script等函数就在此处。
\
mysql模板引擎有哪些_ecshop用的是什么模板引擎?相关推荐
- [vue] 你知道vue的模板语法用的是哪个web模板引擎的吗?说说你对这模板引擎的理解
[vue] 你知道vue的模板语法用的是哪个web模板引擎的吗?说说你对这模板引擎的理解 模板引擎: 负责组装数据,以另外一种形式或外观展现数据. 优点: 可维护性(后期改起来方便): 可扩展性(想要 ...
- mysql断电不受影响db引擎_一次服务器断电,造成innodb引擎表(日志表)损坏的解决办法...
1.mysql日志报错 innodb引擎提示数据库没有正常关闭,报innodb错误180112 0:49:28 InnoDB: Database was not shut down normall ...
- MySQL指定存储引擎命令_MySQL常用指令(2)——存储引擎
MySQL常用指令(2)--存储引擎 查询MySQL支持的存储引擎 查询全部支持的引擎: show engines; ";"可以使用"\g"等价替换,而使用&q ...
- mysql学习【第2篇】:基本操作和存储引擎
mysql数据库之基本操作和存储引擎 一.知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:studen ...
- MySQL数据类型、约束、外键、索引、存储引擎
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 MySQL中数据类型 整型 浮点型 字符串类型 枚举和集合 时间类型 timestamp YYYYMMDDHHMMSS(时间 ...
- MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎 1.存储引擎其实就是如何实现存储数据 ...
- freemarker ftl模板_效率提升百分之四十,AS模板也太好用了吧
点击蓝字 轻松关注 CV 工程师你好,以下内容会让你感觉到不适,慎入! 在平时的开发工作中,我们经常将一个地方的代码,复制粘贴到另外一个地方,俗称搬砖,搬砖搬多了,作为一个资深的挨踢民工,难免会总结一 ...
- 单本小说模板html,非常不错的DedeCMS单本小说模板
商品属性 品牌织梦 语言PHP 数据库 移动端无 大小0.19 MB 规格无 授权无 源文件无 安装环境 安装服务 主机类型 伪静态 操作系统 安装方式 web服务 商品介绍 模板介绍: 非常不 ...
- 2Flask模板2控制代码块3静态文件4模板的继承
-回顾 Flask是基于python并且依赖jinja2模板引擎的框架. 注册路由:客户端与Flask程序交互 用户在浏览器输入请求地址->request Flask程序接收请求,分析请求地址 ...
最新文章
- 华为atn980传输设备_注册开发者超200万!华为HMS加速全球布局,打造全场景智慧体验...
- java 7 g1_java7中G1垃圾收集器使用和流程总结
- Chrome开发者工具中Elements(元素)断点的用途
- BZOJ3029守卫者的挑战(概率dp)
- nmealib linux编译,nmealib的使用可以缩短GPS的开发周期
- 年终总结 | 从Oracle到MySQL大家最关注的竟然是...
- Better-scroll的安装及使用
- Mongodb 定时备份和恢复 1
- SharePoint 2010工作流系列(2):SharePoint Designer 2010中工作流的条件和操作概览
- Python使用matplotlib可视化模拟正弦余弦折线图
- 能源在线监测管理系统
- 英超俱乐部面临网络威胁,球队一起训练防御网络攻击
- Canon EOS Utility安装和使用说明
- 3D建模的通用文件格式
- Reincarnation HDU - 4622
- 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求该数
- 免费个人网站制作离不开参考
- Vue项目报错:sockjs.js?9be2:1603 GET http://10.179.116.126:8080/sockjs-node/info?t=166442
- “九章”问世了,RSA算法在量子计算机面前还安全吗?
- 【opencv450-samples】inpaint 使用区域邻域恢复图像中的选定区域
热门文章
- robocopy 备份_通过Robocopy+DOS 命令+Windows排程实现自动备份(将特定文件/目录备份至自动创建的以年月日命名的目标目录)...
- 3.1.6 OS之分页存储(页号、页偏移量等)
- java epoll select_Java 非阻塞 IO 和异步 IO
- stm32之TIM-高级定时器应用实例一(详细)
- Ubuntu 安装配置NFS网络文件系统服务器
- 乐鑫代理启明云端分享|ESP32驱动1.54inch(240*240)彩屏
- oracle数据泵还原命令,Oracle Linux环境中使用数据泵的形式还原Oracle数据库
- c语言编程思维训练50题,c语言逻辑思维训练题一
- 计算机设计目的和意义,程序设计的目的和意义.doc
- 计算机模块考试注意事项,常考计算机模块考试操作注意事项.doc