thinkphp笔记(1)

来源:互联网 发布:条码生成器软件 编辑:程序博客网 时间:2024/05/22 12:57

一、thinkphp的url访问方式

'URL_MODEL'=>1,
'URL_PATHINFO_MODEL'=>1,
'URL_PATHINFO_DEPR'=>'-',//修改url参数的分割线,默认为"/",此处改为-,即url变为localhost/index.php/user-index

URL_MODEL的值有0,1,2,3四种情况:
0,localhost/index.php?m=user&a=index
1,localhost/index.php/user/index
当URL_PATHINFO_MODEL的值是1时(普通模式),应以这种方式访问:localhost/index.php/m/user/a/index若后面还要加参数,形式如下
localhost/index.php/m/user/a/index/username/aa/password/123456  此例中加了username=aa和password=123456两个参数,都可通过get的方式获取
当URL_PATHINFO_MODEL的值是2时(pathinfo模式),应以这种方式访问localhost/index.php/user/index若后面还要加参数,形式如下
localhost/index.php/user/index/username/aa/password/123456
2,localhost/user/index在与主入口文件,项目入口文件同级的目录下面新建一个.htaccess
2,rewrite 他会加大你服务的性能消耗
3,localhost/index.php?s=/user/g  兼容模式

二、模板
$this->display();或$this->display('index');
传递变量值:$this->assign('在模板中使用的临时变量名','传递的值');

跨模块(控制器)调用模板
$this->display('Index:tt');//控制器名:模板文件名

跨主题(皮肤)
$this->display('skin@user:sg');//皮肤的目录名称@找哪个目录的名称:模板的名称

全路径访问
加载文件的位置以主入口文件定位
$this->display('./public/ss.html');
$this->display('D:\web\vedio\public\ss.html');

$this->display('指定位置','编码','文件的mimie');
例:$this->display('index','utf-8','text/xml');

三、常量
__ROOT__  代表网站的根目录地址
__APP__  代表当前项目的入口文件地址
__URL__  代表当前模块(控制器)地址
__ACTION__  代表当前操作(方法)地址
__SELF__  代表当前的URL地址
__CURRENT__  代表当前模块的模板目录
ACTION_NAME  当前操作名称
APP_PATH  当前项目目录
APP_NAME  当前项目名称
APP_TMPL_PATH  当前项目的模板目录
APP_PUBLIC_PATH  项目公共文件目录
CACHE_PATH  项目模板缓存目录
CONFIG_PATH  项目的配置文件的位置
COMMON_PATH  项目的公共文件目录
//thinkphp  会自动缓存与表相关的结构信息,放在DATA_PATH里
DATA_PATH  项目数据文件目录
GROUP_NAME  分组的名称
HTML_PATH  静态文件目录
IS_APACHE  是否是apache
IS_CGI  是否是cgi
IS_IIS  是否是iis
IS_WIN  是否是windows操作系统
LANG_SET  当前的浏览器语言
LIB_PATH  项目类库目录
LOG_PATH  日志文件的目录
LANG_PATH  语言路径
MODEL_NAME  当前模块名称
MOMORY_LIMIT_ON  当前内存限制
MAGIC__QUOTES_GPC  是否开启魔术转义
TEMP_PATH  项目临时文件夹的目录
TMPL_PATH  项目模板目录
THINK_PATH  thinkphp的系统目录
THINK_VERSION  thinkphp的版本
TEMPLATE_NAME  当前模板名称
TEMPLATE_PATH  当前模板路径
VENDOR_PATH  扩展第三方类库的位置(smarty)
WEB_PUBLIC_PATH  网站公共目录(指在网站根目录的public目录)

模板中的常量
../public  模板目录中的public目录 例:/Tpl/default/public
__PUBLIC__  项目根目录下的public目录
__TMPL__  当前的模板目录
__APP__  项目的url
__ACTION__  当前操作的控制器及动作
__SELF__  当前的整个链接

自定义模板常量
在配置文件中增加TMPL_PARSE_STRING数组
例:
'TMPL_PARSE_STRING'=>array(
'__PUBLIC__'=>'/Common',//更改默认的/Public 替换规则
'__JS__'=>'/Public/JS/',// 增加新的JS类库路径替换规则
'__UPLOAD__'=>'/Uploads',// 增加新的上传路径替换规则
)

四、debug

'APP_DEBUG'=>true,
'TMPL_TRACE_FILE'=>APP_PATH.'/Public/trace.php',//修改trace的位置

'SHOW_RUN_TIME'=>true,//运行时间显示
'SHOW_ADV_TIME'=>true,//显示详细的运行时间
'SHOW_DB_TIMES'=>true,//显示数据库的操作次数
'SHOW_CACHE_TIMES'=>true,//显示缓存操作次数
'SHOW_USE_MEM'=>true,//显示内存开销

在项目config目录中添加debug.php或trace.php文件即可添加相应的调试输出项
在action中添加trace信息:$this->trace('名称','值');


action调试
thinkphp提供了dump()方法,输出调试的时候使用

debug_start('run');
//无数代码
debug_end('run');

//memory_get_usage

halt('aaa');//输出信息并且中断程序执行

模型调试(就是显示数据库操作类当中的执行的SQL语句)
$User = new Model('User');
$User->find(1);
echo $User->getLastSql();//获取最后一次执行的sql语句

'LOG_RECORD'=>true,//开启日志记录
'LOG_RECORD_LEVEL'=>array('EMERG','ALERT');//日志记录的类型,级别

action中记录日志的方法
Log::write($message,$level,$type,$file);//日志信息,日志级别,日志类型,日志文件存储的位置
Log::record  Log::save