首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP入门第二天

TP入门第二天

作者头像
苦咖啡
发布2018-05-07 17:38:48
7620
发布2018-05-07 17:38:48
举报
文章被收录于专栏:我的博客我的博客

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’

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012年7月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档