ThinkPHP操作笔记(二)
来源:互联网 发布:销售管理系统php源码 编辑:程序博客网 时间:2024/06/08 15:54
9.调试操作
调试模式的操作都在项目的配置文件中
运行状态
开启true 关闭false
'SHOW_RUN_TIME' => true, // 运行时间显示
'SHOW_ADV_TIME' => true, // 显示详细的运行时间
'SHOW_DB_TIMES' => true, // 显示数据库查询和写入次数
'SHOW_CACHE_TIMES' => true, // 显示缓存操作次数
'SHOW_USE_MEM' => true, // 显示内存开销
'SHOW_LOAD_FILE' => true, // 显示加载文件数
'SHOW_FUN_TIMES' => true, // 显示函数调用次数
页面Trace
'SHOW_PAGE_TRACE' =>true, // 显示页面Trace信息
页面Trace框架有6个选项卡,分别是基本、文件、流程、错误、SQL和调试,点击不同的选项卡会切换到不同的Trace信息窗口
$user = array(1,2,3,6,5);
trace($user,'用户信息');
在调试选项卡里面显示结果为
用户信息:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 6 [4] => 5 )
页面的trace选项卡是可以定制和扩展的
在项目的配置文件里面添加
'TRACE_PAGE_TABS'=>array('base'=>'基本','file'=>'文件','think'=>'流程','error'=>'错误','sql'=>'SQL','debug'=>'调试','user'=>'用户')
$user = array(1,2,3,6,5);
trace($user,'用户信息','user'); //第三个参数指定选项卡
把用户的$user变量信息在 user选项卡里面显示
trace页面追踪信息保存到文件中
在项目的配置文件
'PAGE_TRACE_SAVE'=>true,
保存的格式为 当前的日期_trace.log
调试方法
变量调试
dump($var)
性能优化
查询时间开销
G('run');
$data = M("user")->select();
echo G('run','end');
使用Debug类 查看程序的使用时间和内存开销
import("ORG.Util.Debug");
Debug::mark("run");
程序部分
Debug::mark("end");
echo Debug::uerTime("run","end")."s";
echo Debug::uerMemory("run","end")."kb";
10.缓存方式
经常使用的缓存 File Memcache Apc Eaccelerator Xcache Redis
动态缓存设置
$Cache = Cache::getInstance('缓存方式','缓存参数'),
通用参数
expire 缓存有效期(默认由DATA_CACHE_TIME参数配置)
length 缓存队列长度(默认为0)
queue 缓存队列方式(默认为file 还支持xcache和apc)
例如
初始化
$Cache = Cache::getInstance("File",array("expire "=>60))
数据操作
$Cache->set("name","ThinkPHP"); //设置
echo $Cache->get("name"); //获取
$Cache->rm("name"); //删除
缓存时间重新设置
$Cache->set("name","ThinkPHP",3600); //参数设置3600秒
快捷方式操作缓存
cache() S() 两个函数
缓存初始化
cache(array("expire"=>'xcache','expire'=>60))
添加 S("name",$value); cache("name",$value)
获取 S("name"); cache("name")
删除 S("name",null); cache("name",null)
查询缓存操作
缓存select() find() getField()
$Model->cache(true,60,'File')->select();
$Model->cache("cacheName",60)->select(); 运用cacheName可以在其他模块使用 $value=S("cacheName")
SQL解析缓存设置
修改项目配置文件
'DB_SQL_BUILD_CACHE' => true,
静态缓存
在项目配置文件配置两个参数
HTML_CACHE_ON => true
'HTML_CACHE_RULES' = array(
'ActionName' => array('静态规则', '静态缓存有效期', '附加规则'),
'ModuleName(小写)' => array('静态规则', '静态缓存有效期', '附加规则'),
'ModuleName(小写):ActionName' => array('静态规则', '静态缓存有效期', '附加规则'),
'*' => array('静态规则', '静态缓存有效期', '附加规则'),
)
实例
'HTML_CACHE_ON'=>true,
'HTML_CACHE_RULES'=>array(
'*'=>array('{$_SERVER.REQUEST_URI|md5}'),
),
11.扩展操作
类库扩展
控制器扩展 用于完成一切特殊操作,如用户权限检查,文件上传
_initialize() 在所有方法调用前调用
Class ExtendAction extends Action{
Public function _initialize(){
// 初始化的时候检查用户权限
$this->checkRbac();
}
// 检查用户权限
protected function checkRbac() {
// 这里是具体的检测代码
}
// 添加新的上传操作方法
protected function upload() {
// 这里是具体的上传实现代码
}
}
模型扩展
Widget扩展
12.杂项操作
session操作
session初始化操作
session(array('name'=>'session_id','expire'=>3600));
session("name","value") //设置
session("name") //获取
session("name",null) //删除
session('?name'); 判断session是否设置
cookie操作
cookie('name','value',3600); // 指定cookie保存时间
value = cookie('name'); //获取
cookie("name",null) //删除
数据分页
文件上传
验证码
PublicAction.class.php
文件内容
class PublicAction extends Action{
Public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify();
}
}
<img src="__APP__/Public/verify/" />
判断验证码是否正确
if($_SESSION['verify'] != md5($_POST['verify'])) {
$this->error('验证码错误!');
}
图片添加水印
public function image(){
import('ORG.Util.Image');
$image = new Image();
$image->water("1.jpg","2.gif"); //图片位置 和index.php文件同目录
}
IP地址获取和定位
- ThinkPHP操作笔记(二)
- ThinkPHP学习笔记(五):数据库操作二
- ThinkPHP学习笔记(二)
- ThinkPHP操作笔记(一)
- ThinkPHP学习笔记(二):ThinkPHP框架的模板技术
- ThinkPHP学习笔记(一):ThinkPHP 框架的简单操作
- ThinkPHP框架开发学习笔记(二)
- ThinkPHP学习笔记(二)-------一个放不开
- thinkPHP笔记----数据库操作
- ThinkPHP 学习笔记二 模版
- ThinkPHP学习笔记(二)——(读取数据)
- ThinkPHP学习笔记(二)MVC模式和URL访问
- ThinkPHP学习笔记(十八)数据库表的关联操作
- ThinkPHP学习笔记(四):数据库操作一
- ThinkPHP 控制器(二)
- thinkPHP常用数据操作(二)查询语言
- thinkphp笔记(1)
- thinkphp笔记(2)
- linux常用命令收藏
- 欧拉路径 hdu 3018 Ant Trip
- linux 之cut awk 和批量文件编码转换 shell脚本
- 滚动条下拉DIV固定在头部不动
- uva 10183 - How Many Fibs?(Fibonacci)
- ThinkPHP操作笔记(二)
- spring定时器
- 分页查询发电量评估纵向历史对比数据(项目保留)
- c# asp.net 新建项目与新建网站区别
- Flex xml编辑器(老外写的)
- springMVC传参中会出现中文乱码
- SharePoint Foundation 2010 预安装失败,KB976462安装错误
- linux透明代理可以集成squid的验证吗?(未完结)
- 在新东家工作了1328天,明天回老东家