[朝花夕拾]smarty 打开报错提示(错误提示)并调试查看所有变量,smarty 调试打印数组及显示变量。直接查看编译结果看是否有smarty模板编译缓存。

jackxiang 2011-9-7 20:39 | |
一,调试模式查看所有变量和数组

1、设置配置文件中的 debuging的值为true。即开始调试(设置完这一步,一般情况下在浏览页面的时候就可以看到一个弹窗了,里面有在这个页面里的所有smarty变量。如果没有弹出看下一步)。



2、在模版里输入{debug},就可以看到这个模版里的变量了。
如果要关闭掉调试控制台,设置变量 $debugging 为 false 就可以了。

不同的情况那个debug是不一样的,实际中特别注意要$tpl->caching = false;不能缓存时看全部DB输出的变量:


在模板中是这样:


在smarty编译后的模板里是这样的:


要想能真正报错其实践的结论是,三个都打开:
1.error_reporting(E_ALL);打开,否则有错容易报不出来:

2.$tpl->debugging = true;

3.在输出页面里加入调试变量:

二,非调试模式下查看变量和数组,也就是从弹出框中所有变量只看一部分,以方便调试。

1、Smarty下如何查看数组:
   如果你在使用smarty时,想查看某变量的内容,而又不想打开smarty debug,或smarty debug的输出不能满足你的要求,可以这样用。
如果是查看数组,应当

我自己试了下是这样:

会输出到页面里,不是弹出框。
注意:这里用@是来保证把变量当做一个整体对待,否则会遍历这个array.
查看变量:



2、Smarty下如何调试数组,无论这个:$tpl-> debugging   =   TRUE;  或者:False都可以:
比如要调试数组$array

实践如下:


调试变量就

偶的实践:


请注意:数组都有一个@,呵呵。
详细说请看Smarty/plugins下的modifier.debug_print_var.php

本站内相关文章三篇:
http://www.jackxiang.com/post/2083/
http://www.jackxiang.com/post/1169/
http://www.jackxiang.com/post/1191/


直接查看编译结果看是否有smarty模板编译缓存(有时配置文件没配置好出现模板里没有变量,得查找老半天,直接查看编译好的模板能快速找到线索Add:2014-01-09):
一)生成Js的Url地址如下:
http://static.xiyou.cntv.cn/2013/js/wistracker.js?ver=2.037
二)配置前缀路径:
config.php
return array(
    'statistics' => array(
        'action_url'          => 'http://static.xiyou.cntv.cn/2013/js/'
    )
)
三)smarty输出到模板:
./application/controllers/front/frontbase.php:        $this->view->user_action = KO::config('config.statistics.action_url');


四)模板编译情况:
[root@my smarty_compile]# vi ./%%D3^D36^D3641954%%index.html.php
<script src="<?php echo $this->_tpl_vars['user_action']; ?>
wistracker.js?ver=<?php echo $this->_tpl_vars['version']; ?>
" type="text/javascript">

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4609/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2014-1-9 14:24
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]