专栏首页我的博客TP入门第二天

TP入门第二天

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’

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 安卓开发之再用SharedPreference

    1、先获取对象 MySharePreference = getPreferences(Context.MODE_PRIVATE);//这里的模式自己查找 2、...

    苦咖啡
  • ThinkPHP3.1.2笔记

    1.开启trace 方法一:在配置文件中添加(默认在config.php,如果定义debug模式,可以定义在debug.php) SHOW_PAGE_TRAC...

    苦咖啡
  • PHP技术点A

    1、合并数组(array_merge和+的区别) array_merge如果两个数组存在相同的key,后面的会覆盖前面的 备注:如果是数字索引,则不会覆盖,...

    苦咖啡
  • Python基础-模块与包

    当文件是直接运行时,文件的 __name__ 是 __main__,当文件是被导入时,__name__是文件名。

    小团子
  • python之基础篇(八)——模块与包

      将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块。

    py3study
  • 模块(包、库)

      模块是程序,它就是一个扩展名为.py的python程序。因此对于一个.py的python文件而言,既可以把它当作程序来执行,也可以将它作为模块引入。

    py3study
  • React 项目性能分析及优化

    性能优化不是一个简单的事情,但在 95% 以上的 React 项目中,是不需要考虑的,按自己的想法奔放的使用就可以了。

    前端迷
  • 3.Pycharm设置开发模板/字体大小/背景颜色

    选择 File –> setting –> Editor –> Font ,可以看到如上界面,可以根据自己的喜好随意调整字体大小,字体风格,文字行间距,设置之后...

    猿说编程[Python和C]
  • Python编写渗透工具学习笔记一 | 0x03用多线程扫描某一网段中存活的主机

    0x03用多线程扫描 某一网段中存活的主机 (如果渗透进了内网,还可以扫描内网上里的存活主机) 脚本利用演示+实现思路分析 实现思路: 调用终端执行ping命令...

    安恒网络空间安全讲武堂
  • Super快报第5期:手机操作系统混战前夜

    Super元旦节去凤凰旅游了,快报也去旅游了几天。Super快报在广州祝各位看官新年快乐,2013年有什么愿望就把Super快报作为一个树洞吐来吧,一定会梦...

    罗超频道

扫码关注云+社区

领取腾讯云代金券