路径访问与模块之间的关系
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