+ -
当前位置:首页 → 问答吧 → 8月8日-8月14日一周总结

8月8日-8月14日一周总结

时间:2011-08-15

来源:互联网

1.volist中进行取模操作的一点说明
在TP2.1的手册7.8中有这么一段
  1. <volist name="list" id="vo" mod="5" >
  2. {$vo.name}
  3. <eq name="mod" value="4"><br/></eq>
  4. </volist>
复制代码
如果在实际演示中第一行只显示了4个,从第二行开始每行显示5个,有的同学不明白第一行怎么只显示了4个,其实很简单,只要看一下缓存中的语句就明白了
  1. <?php if(is_array($list)): $i = 0; $__LIST__ = $list;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): ++$i;$mod = ($i % 5 )?><?php echo ($vo["ip"]); ?>
复制代码
初始的时候$i值为0,但在取模前,执行了++$i操作,即$i不是从0开始的而是从1开始的。所以第一行只显示了4个

2.runtime缓存目录
runtime - 目录下面的结构
Cache - 模板缓存
Data - 数据目录,目录下的_fields为字段缓存
Logs - 日志缓存
Temp - 数据缓存
~app.php - 项目编译缓存文件包括项目配置文件,项目公共函数文件
~runtime.php - 核心缓存文件
在开发中我们的文件随时都可能需要改动,这样我们有时需要删除runtime目录下面的缓存才能生效,如果不需要生成缓存可以在项目入口文件中加入
  1. define('NO_CACHE_RUNTIME',True);
复制代码
在开启缓存的情况下更容易发现错误,不过有时候总是提示~runtime.php第2行,这是因为在生成编译缓存和核心缓存的时候去除了空白和注释,我们可以让他保留注释和空白这样我们更容易查找。只需在入口文件中加入
  1. define('STRIP_RUNTIME_SPACE',false);
复制代码
3.URL大小写的问题
系统默认的规范是根据URL里面的moduleName和actionName来定位到具体的模块类,从而执行模块类的操作方法,如果在Linux环境下面,就会发生URL里面使用小写模块名不能找到模块类的情况,我们可以通过配置来解决
  1. 'URL_CASE_INSENSITIVE' =>   true
复制代码
这样URL就不区分大小写了
不过需要注意的是
如果我们定义了一个UserTypeAction的模块类,那么URL的访问应该是:
http://<serverName>/index.php/user_type/list
而不是
http://<serverName>/index.php/usertype/list

4.在模板中引入文件
有的新人对在模板中包含文件还是不明白,这里文件的路径问题我就不说了在前几周的总结中都有涉及,在模板中包含文件,在TP2.1的手册7.6说的很详细,可以仔细看看,写些小例子自己测试下就明白了

5.获取URL参数的值
有的新同学对url的pathinfo模式不熟悉,在pathinfo模式下获取参数和我们的普通模式获取参数是一样的
  1. Action/function/参数1/参数1值/参数2/参数2值
  2. 获取参数:
  3. $_GET['参数1'];
  4. $_GET['参数2'];
复制代码

作者: wtwei   发布时间: 2011-08-15



第一个模板方法还真没有用过。

作者: vus520   发布时间: 2011-08-15