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 还支持xcacheapc) 

 

例如

 

初始化

$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地址获取和定位

 

0 0