路径访问与模块之间的关系
thinkphp当中模块,动作,与url路径之间的关系
我们的所有访问模块还有动作,全部都必须经过主入口文件
如果我们访问admin.php这个主入口文件的时候,我们不知道访问哪个模块,也不知道哪个方法
thinkphp规定,所有的主入口文件默认访问index控制器
并且,所有的控制器默认访问的是index方法
模块/方法
定义第一私有方法的意义:能够写一个与用户模块相关的方法,但有不希望原来方法过于多,可以定义一个私有方法。
必须要类名与文件名相同,首字母必须大写,后面必须要加上action,必须要继承action的类
pathinfo
thinkphp为我们提供了四种路径访问模式
conf目录下做修改
0 叫普通模式 http://lamp.net/index.php?a=d&m=user
1 叫pathinfo模式 http://lamp.net/index.php/模块/动作(为默认访问模式)
2 叫rewrite重写(伪静态)你自己可以写相关的rewrite规则,也可以使用系统提供的http://lamp.net/user/index
3 叫兼容模式 他的路径访问http://lamp.net/index.php?=/user/g
当服务器不支持 pathinfo模式的时候,但你又在之前的路径格式上面全部使用的是pathinfo格式。它会提示你格式不正确,使用兼容模式。
'url_model'=>0;
开启url重写,不论是被重写的还是没被重写的,都能够通过原来的路径进行访问
1.确认你的服务器环境已经开启了apache的rewrite模块
2.在与主入口文件,项目入口文件同级的目录下面新建一个.htaccess
rewrite会加大你的服务器性能消耗
pathinfo两种模式
普通模式和智能识别模块和操作
"URL_PATHINFO_MODEL"=>1
普通模式:如果使用普通模式,必须在前面加上/m模块/a方法并且顺序可以发生变化
所谓的智能模式,其实就是pathinfo模式
要在pathinfo模式当中进行传值与普通模式传值一致
'URL_PATH_INFO_DEPR'=>'/'
$this->display();
如果在前台项目当中,或者后台项目当中你必须要在对应的tpl目录下.
找到default,下面建一个与控制名相同的文件名,必须要建一个与方法相同的.html文件,放在目录下面
app_debug=true
一旦开启调试模式,它或模拟linux操作系统来帮我们实现识别大小写
一旦开启调试模式,方法名得大小写有关
模拟出来的文件夹命名不区分大小写
跨控制器调用模板
$this->display('Index:tt');
跨皮肤
$this->display('skin@user:sg');
$this->dislpay('皮肤目录名称@找哪个目录名称:模板的名称')
全路径输出
主入口目录public
加载文件的位置全以主入口文件定位
$this->display('./public.ss.html');
$this->display('指定位置','编码','文件的mime类型');
thinkphp中的一些常量,一些与模板有关的模板替换参数
系统常量定义是thinkphp为我们已经准备好的一些常量,在这些常量当中,已经为我们封装好的功能和值
系统常量主要是用在我们的模块下面的方法,这样的话能够提高我们的开发效率。
echo __ROOT__代表网站根目录地址
echo __APP__代表当前项目的入口文件地址
echo __URL__代表当前模块地址
echo __ACTION__代表当前操作地址
echo __SELF__代表当前的url地址
echo __CURRENT__代表当前模块的模板目录
echo action_name当前操作名称
app_path 代表当前项目目录
app_name 代表当前项目名称
app_tmpl_path 代表当前项目的模板目录
app_public_path 代表项目公共文件目录
cache_path 项目模板缓存目录
config_path 项目的配置文件放在什么地方
common_path项目的公共文件目录
//thinkphp会自动缓存与表相关的结构信息
data_path 项目数据文件目录
group_name
html_apache
IS_apache
is_cgi
is_iis
is_win
lang_set
lib_path
log_path
lang_path
model_name
memory_limit_on
magic_quotes_gpc
temp_path 临时文件夹
tmpl_path 项目目录
think_path
tthink_version
template_name
template_path
vendor_path
web_public_path
模板替换
__URL__当前模板的URL地址
../public
__PUBLIC__
__TMPL__
__APP__
__ACTION__
__SELF__
../Public: 会被替换成当前项目的公共模板目录 通常是 /项目目录/Tpl/default/Public/
__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/
__TMPL__: 会替换成项目的模板目录 通常是 /项目目录/Tpl/default/
__ROOT__: 会替换成当前网站的地址(不含域名)
__APP__: 会替换成当前项目的URL地址 (不含域名)
__URL__: 会替换成当前模块的URL地址(不含域名)
__ACTION__:会替换成当前操作的URL地址 (不含域名)
__SELF__: 会替换成当前的页面URL
自定义模板替换规则
TMPL_PARSE_STRING=>array('__COMMON__'=>'/sbc'),
app_debug:调试模式
我们可能涉及到表的修改,特别是对字段的修改,增加一个字段,减少一个字段
对于thinkphp来说,存的是各个字段,他能够不记录,我们新加的或减少的字段
如果开了的话,你新加了字段。。他是不认识你加的字段的。
debug.php
访问某个网站,下角会显示我们运行的时间是多长
我们查询数据库多少次
'SHOW_RUN_TIME'=>true 运行时间显示
'SHOW_ADV_TIME'=>true 显示详细的运行时间
'SHOW_DB_TIMES'=>true 显示数据库操作次数
'SHOW_CACHE_TIMES'=>true 显示缓存操作次数
TMPL=trwce-files
debug_start('run');
debug_end('run');
halt(''); 输出信息然后中断
//模型调试(就是显示数据库操作类中执行的SQL语句)
//
$user=mew Model('user');
$user->find();
$user->getLastSql();
开启日志记录
'LOG_RECORD'=>true开启日志记录
'LOG_RECORD_LEVEL'=>array();
Log::write($message,$level,$type,$file);
日志信息 日志级别 日志类 日志文件存储的位置
LOG::record log::save
thinkphp学习二
原创
©著作权归作者所有:来自51CTO博客作者宋叶子的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:thinkphp学习一
下一篇:thinkphp学习三
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【CAD建模号】学习笔记(二):工作区
工作区由[工具提示],[自适应网格],[自适应坐标轴],[参考坐标轴],[绘制的图形]组成。
自适应 坐标轴 工具提示 工作区 CAD建模号