1、配置说明
//’配置项’=>’配置值,配置在conf文件夹下config.php
2、Action文件定义规定
类名和文件名一样,首字母大写,后面必须要加Action必须继承Action类
比如shop模块需要这样命名文件:ShopAction.class.php,而类名必须是ShopAction并且需要继承Action
3、PATH_INFO模式
比如文件是php.php页面,里面就写一段代码
print_r($_SERVER);然后访问php.php以及访问php.php/index/model搜下path_info看到什么了?
Patinfo又可以分三种:普通模式和自动识别模式以及兼容模式
普通模式:设置配置文件加上‘URL_PATHINFO_MODEL’=>’1’
普通模式访问:index.php/m/模块名/a/动作名
这样GET传值怎么办?
这个时候可以这样传值:index.php/m/模块名/属性/值1/属性2/值2
这样在模块中的方法可以用$_GET[‘属性‘]得到值1,$_GET[‘属性2′]得到值2
智能模式:需要配置‘URL_PATHINFO_MODEL’=>’2’
这个时候就不需要加上index.php/模块名/动作名
而传值就和普通方式一样的办法进行传值
说明:有的可能配置了默认分隔符,那么这里的传值就需要变化了
比如你配置了’URL_PATHINFO_DEPR’=>’-‘,那么你传值就要用–分开传值了
注意:URL_PATHINFO_MODEL这个配置在3.0里面已经去掉了
4、TP模式分类
0普通模式、1Pathinfo模式(默认模式)、2Rewrite模式、3兼容模式
服务器不支持pathinfo可以使用兼容模式
5、Rewrite模式需要服务器开启rewrite模块,然后建立htaccess文件
6、入口文件
所有的加载都是相对于入口文件定位的,统一的入口文件方便了权限的管理以及
7、模板输出
一个控制器对应一个主题下面的一个文件夹,而默认的主题文件夹是default(当然你的知道默认的主题是在tpl文件夹下)模板文件的默认后缀的情况是.html,也可以通过TMPL_TEMPLATE_SUFFIX来配置成其他的。
一、调用当前模块的其他操作模板
格式:display(‘操作名‘)
例如,假设当前操作是User模块下面的read操作,我们需要调用User模块的edit操作模版,使用:
$this->display(‘edit’);
不需要写模板文件的路径和后缀。
二、调用其他模块的操作模板
格式:display(‘模块名:操作名‘)
例如,当前是User模块,我们需要调用Member模块的read操作模版 ,使用:
$this->display(‘Member:read’);
这种方式也不需要写模板文件的路径和后缀,严格来说,这里面的模块名和操作名并不一定需要有对应的模块或者操作,只是一个目录名称和文件名称而已,例如,你的项目里面可能根本没有Public模块,更没有Public模块的menu操作,但是一样可以使用
$this->display(‘Public:menu’);
输出这个模板文件。理解了这个,模板输出就清晰了。
三、调用其他主题的操作模板
格式:display(‘主题名:模块名:操作名’)
例如我们需要 调用Xp主题的User模块的edit操作模版,使用:
$this->display(‘Xp:User:edit’);
这种方式需要指定模块和操作名
四、直接全路径输出模板
格式:display(‘模板文件名‘)
例如,我们直接输出当前的Public目录下面的menu.html模板文件,使用:
$this->display(‘./Public/menu.html’);
这种方式需要指定模板路径和后缀,这里的Public目录是位于当前项目入口文件位置下面。如果是其他的后缀文件,也支持直接输出,例如:
$this->display(‘./Public/menu.tpl’);
只要./Public/menu.tpl是一个实际存在的模板文件。如果使用的是相对路径的话,要注意当前位置是相对于项目的入口文件,而不是模板目录。
事实上,display方法还有其他的参数和用法。
有时候某个模板页面我们需要输出指定的编码,而不是默认的编码,可以使用:
$this->display(‘Member:read’,’gbk’);
或者输出的模板文件不是text/html格式的,而是XML格式的,可以用:
$this->display(‘Member:read’,’utf-8′,’text/xml’);
如果你的网站输出编码不是默认的编码,可以使用:
‘DEFAULT_CHARSET’=>’gbk’
如果要输出XML格式的,可以用:
‘TMPL_CONTENT_TYPE’=>’text/xml’