在写本文前我不得不说一句,其实我是不想用smarty的,我想尝试一下twig,但是phpstorm的Twig插件真要命,卡成翔,所以我只能用smarty。为什么不用prado了呢?官方说不支持了,我晶啊 在使用smarty的时候官方的代码和例子看上去很美,不过要注意几点 1、用yii

在写本文前我不得不说一句,其实我是不想用smarty的,我想尝试一下twig,但是phpstorm的Twig插件真要命,卡成翔,所以我只能用smarty。为什么不用prado了呢?官方说不支持了,我晶啊

在使用smarty的时候官方的代码和例子看上去很美,不过要注意几点

1、用yii2-smarty,还是必须得用layout,如果你不支持layout文件,默认就是/layouts/main.php,天啊,为什么是PHP?而且在这里面也还真的能用PHP代码。整个都崩溃了

2、你可以指定layout文件,比如:main.tpl,OK你必须得象PHP文件一样,得写{$this->head()},{$this->startBody()}{$this->endPage()}等,否则 ClientScript功能就无法使用

3、如果你指定layout=false,那么,就不支持ClientScript了。因为你incude file='xxx.tpl',在每一个独立的文件里都必须要象2中一个个的this->head(),this->endPage全写上

4、再来一个bug:{registerJsFile url=''},这个函数有BUG

原来是:

public function functionRegisterJsFile($params, $template)

{

if (!isset($params['url'])) {

trigger_error("registerJsFile: missing 'url' parameter");

}

$url = ArrayHelper::remove($params, 'url');

$key = ArrayHelper::remove($params, 'key', null);

$depends = ArrayHelper::remove($params, 'depends', null);

if (isset($params['position']))

$params['position'] = $this->getViewConstVal($params['position'], View::POS_END);

Yii::$app->getView()->registerJsFile($url, $depends, $params, $key);

}

改成为:/**

* Smarty function plugin

* Usage is the following:

*

* {registerJsFile url='http://maps.google.com/maps/api/js?sensor=false' position='POS_END'}

*

* Supported attributes: url, key, depends, position and valid HTML attributes for the script tag.

* Refer to Yii documentation for details.

* The position attribute is passed as text without the class prefix.

* Default is 'POS_END'.

*

* @param $params

* @param \Smarty_Internal_Template $template

* @return string

* @note Even though this method is public it should not be called directly.

*/

public function functionRegisterJsFile($params, $template)

{

if (!isset($params['url'])) {

trigger_error("registerJsFile: missing 'url' parameter");

}

$url = ArrayHelper::remove($params, 'url');

$key = ArrayHelper::remove($params, 'key', null);

$params['depends'] = ArrayHelper::remove($params, 'depends', null);

if (isset($params['position']))

$params['position'] = $this->getViewConstVal($params['position'], View::POS_END);

Yii::$app->getView()->registerJsFile($url, $params, $key);

}

其实就是$params['depends']这个参数。registerJsFile只能接受3个参数,但事实上用了4个参数,所以调整一下即可

yii2 smarty php,Yii2-smarty的一些小坑相关推荐

  1. php smarty变量调节器,Smarty模板变量与调节器实例详解

    本文实例讲述了Smarty模板变量与调节器.分享给大家供大家参考,具体如下: Smarty中assign说明 可能有人在学习smarty的时候已经学习了一些php框架,如tp.laravel.Yii等 ...

  2. smarty mysql demo_PHP Smarty模版简单使用方法

    本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...

  3. Smarty中文手册,Smarty教程,Smarty模板的入门教材

    Smarty中文手册,Smarty教程,Smarty模板的入门教材 首先,这份Smarty中文手册的翻译工作是由喜悦国际村村民自发组织的,不代表任何人的意见和观点.对他们的无私奉献精神,我们表示感谢, ...

  4. php smarty安装,php smarty 安装 、配置、使用 及缓存cache的配置使用

    cache 使用: cache配置: $smarty->cache_dir = "/caches/";  //缓存目录 $smarty->caching = true; ...

  5. php smarty 分页类,Smarty分页类Smartypaginate

    不罗嗦了,直接上范例 function.paginate_first.php.function.paginate_last.php.function.paginate_prev.php.functio ...

  6. php yaf smarty,Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty)

    Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty) 来源:互联网 作者:佚名 时间:2015-08-06 07:55 对完成某个任务进行计时可使用progress_tim ...

  7. php smarty模板配置,Smarty模板简单配置与使用方法示例

    这篇文章主要介绍了Smarty模板简单配置与使用方法,涉及Smarty模板的基本配置与缓存文件的相关使用技巧,需要的朋友可以参考下 本文实例讲述了Smarty模板简单配置与使用方法.分享给大家供大家参 ...

  8. php smarty php函数,smarty中使用php函数的方法

    本节内容: 如何在smarty中使用php函数? 例子: 复制代码 代码示例: /** * smarty模板引擎中使用php函数 * by www.jbxue.com */ require 'libs ...

  9. PHP Smarty 模板,PHP Smarty模板引擎

    前言:概念上的东西就简单过一下,细节上的东西就不深究了.作下读书笔记,且该知识点是后续学习MVC框架的一部分. 1.什么是模板引擎 1.1.网站页面模板:即每个页面仅是一个板式,包括结构.样式和页面布 ...

  10. php的smarty模板,PHP Smarty模板的安装

    最近开发中用到了PHP中smarty模板..作为一个长久以来的前端,开始学习PHP模板..下面将安装教程分享给大家.. 1. 下载Smarty最新版: http://www.smarty.NET/do ...

最新文章

  1. Java图形化界面设计——容器(JFrame)
  2. android service 学习(上)
  3. [转]关于int整形变量占有字节问题
  4. #pragma pack
  5. C#学习笔记——数据库篇(1)
  6. python程序设计与应用教程鄂大伟_鄂大伟-从零进阶的Python教学与开发之路.pdf
  7. 3、mybatis主配置文件之settings
  8. Element Tree型控件
  9. 【OpenCV 例程200篇】63. 图像锐化——Laplacian 算子
  10. java高级语言特性_Java语言高级特性——注解
  11. java 打印_剑指Offer面试题20(Java版):顺时针打印矩阵
  12. 48. Rotate Image java solutions
  13. Cmder安装使用篇
  14. 教你编写一份高质量的软件测试报告
  15. 计算模型的GFLOPs和参数量 举例VGG16和DETR
  16. Customer-exit总结
  17. web漏洞类型概述(owasp top10笔记)
  18. VMware下载,安装及创建虚拟机
  19. AUTOSAR OTA升级
  20. 蓝彩影视V73-安卓/苹果/网页/TV端/有教程

热门文章

  1. Python字符串函数说明(菜鸟教程里面的)
  2. Kroneker Tensor:克罗内克张量
  3. DPDK 跟踪库tracepoint源码实例分析
  4. 2021年二月下旬文章导读与开源项目仓库 | scatter-gather DMA,SR-IOV,ARP欺骗,中断,Lockdep,virtio,vhost
  5. 2019.04.13 - 19:34
  6. python修饰符的理解_python函数修饰符@的使用方法解析
  7. windows ce6.0系统 支持双网卡吗_MacBook双系统不求人,自己来
  8. 64位 int 占几个字节_面试常考,项目易错,长文详解C/C++中的字节对齐
  9. mysql并发插入死锁_MySQL: 并发replace into的死锁问题分析-阿里云开发者社区
  10. mysql 分区 导出_mysql普通表变成分区表导入导出