1.控制器

1-1.加载页面【使用系统函数eg:http://ww:7070/tp5-2/public/admin/test/load】

1-2.加载页面【继承控制器方法eg:http://ww:7070/tp5-2/public/admin/test/load1或者2】

1-3.数据的返回格式【在config.php中设置,默认是html eg:http://ww:7070/tp5-2/public/admin/test/data】

1-4.控制器的初始化【注意:必须继承控制器 eg:http://ww:7070/tp5-2/public/admin/int】

1-5.前置操作【注意:必须继承控制器 eg:http://ww:7070/tp5-2/public/admin/before】

1-6.页面跳转:【注意:必须继承控制器 eg:http://ww:7070/tp5-2/public/admin/login】

修改跳转过渡页面【config.php查找位置】

 // 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',

过渡页面在【thinkphp/tpl/dispatch_jump.tpl】可以自行设置

1-7.重定向 【eg:http://ww:7070/tp5-2/public/admin/login/cdx】

1-8.空操作【eg:http://ww:7070/tp5-2/public/admin/login+其他】该控制器没有的方法都执行该方法

1-9.空控制器 在模块中没有的控制器会执行该控制器【http://ww:7070/tp5-2/public/index+其他】

注意:网站上线之前每一个控制器都要加空操作,另外每一个模块也要加一个空控制器

1-10.资源 用cmd命令来创建东西  切换到tp根目录【php think clear】

php think->make:controller app\index\controller\User创建资源控制器,修改资源路由Route::resource('user','index/User');

2.请求和url【eg:http://ww:7070/tp5-2/public/url/api/test1/a/2/b/2】

2-1.

1.请求方式:GET
2.资源类型:xml
3.访问的ip:127.0.0.1
4.请求参数:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
5.某个请求参数:
array(1) {
["a"] => string(1) "2"
}
6.除了某个请求参数:
array(1) {
["b"] => string(1) "2"
}
7.是否ajax:
8.不含域名的请求地址:/tp5-2/public/url/api/test1/a/2/b/2
9.包含完整域名的地址:http://ww:7070/tp5-2/public/url/api/test1/a/2/b/2
10.获取当前域名:http://ww:7070
11.获取当前入口文件:/tp5-2/public/index.php
12.获取不含查询关键字的地址:/tp5-2/public/url/api/test1/a/2/b/2
13.获取原始地址:/tp5-2/public
14.获取url地址中的PATH_INFO:url/api/test1/a/2/b/2
15.获取url地址中的PATH_INFO不含后缀:url/api/test1/a/2/b/2
16.获取url地址中的后缀:
17.获取当前模块的名称:url
18.获取当前控制器的名称:Api
19.获取当前操作的名称:test1
20.获取路由:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
21.获取调度:
array(2) {
["type"] => string(6) "module"
["module"] => array(3) {
[0] => string(3) "url"
[1] => string(3) "api"
[2] => string(5) "test1"
}
}
22.检测某个变量参数是否设置:
bool(false)
23.助手函数input()检测某个变量参数是否设置:
bool(false)
24.获取某个请求参数param(name)方法 过滤过:
string(1) "2"
25.获取请求参数param() 未过滤:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
25.获取请求参数param(true) 包含上传文件:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
26.get().post().delete().put().request().server().session().cookie()都一样 加参获取某个 true原始数据 无参过滤的数据
27.助手函数input input(get)
28.助手函数input input(get.a)

2-2.请求参数过滤,更改以及排除【http://localhost:7070/tp5-2/public/url/api/test2/?a=123】

2-3.请求类型判断

// 是否为 GET 请求
if (Request::instance()->isGet()) echo "当前为 GET 请求";
// 是否为 POST 请求
if (Request::instance()->isPost()) echo "当前为 POST 请求";
// 是否为 PUT 请求
if (Request::instance()->isPut()) echo "当前为 PUT 请求";
// 是否为 DELETE 请求
if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
// 是否为 Ajax 请求
if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";
// 是否为 Pjax 请求
if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";
// 是否为手机访问
if (Request::instance()->isMobile()) echo "当前为手机访问";
// 是否为 HEAD 请求
if (Request::instance()->isHead()) echo "当前为 HEAD 请求";
// 是否为 Patch 请求
if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
// 是否为 OPTIONS 请求
if (Request::instance()->isOptions()) echo "当前为 OPTIONS 请求";
// 是否为 cli
if (Request::instance()->isCli()) echo "当前为 cli";
// 是否为 cgi
if (Request::instance()->isCgi()) echo "当前为 cgi";

2-4.获取头部信息【http://localhost:7070/tp5-2/public/url/api/test3】

tp5总结(三)的更多相关文章

  1. think PHP5中,模板、控制器、JavaScript的url跳转重定向方法

    php控制器中的跳转: 1, header()函数是PHP中进行页面跳转的一种十分简单的方法.主要功能是将HTTP协议标头(header)输出到浏览器. header("Location: ...

  2. tp5使用外部类的三种方法

    在tp5中使用外部类的时候有三种方法 第一种就是通过composer下载,通过这种方式下载的外部类能够支持自动加载,我们只要在使用的时候use一下命名空间就可以使用了 比如:我们的tp5第四季项目要使 ...

  3. 记录一下我的三天清明节假期,TP5.1写企业站

    在假期前就计划利用这三天时间写一个企业站,包括pc和wap,和微信公众平台 在计划时有些功能没有想好,导致后面踩了不少坑,前期计划一定要尽量做详细,表字段设计也要考虑好,不然后期开始写代码时会需要来回 ...

  4. 学习tp5的第三天(模型)

    一.模型 1.定义基础模型 <?php namespace app\index\model; use think\Model; class User extends Model{ // 设置完整 ...

  5. tp5中很牛皮的一句sql语句,三个条件(两个不确定条件,一个硬性条件)

    $result = Db::table('xxxxxx')   // 表名 ->alias('g') ->join('xxxxx_2 u','g.user_id = u.id') -> ...

  6. TP5学习基础二:目录结构、URL路由、数据操作

    一.安装1.使用git或者composer(composer update)进行实时更新,区别在于git不会清空核心框架目录而composer会清空.2.使用官网打包好的TP压缩包(解压即可用)-&g ...

  7. tp5框架的获取器

    tp5的获取器功能很强大,一下子就喜欢上了,你可以在模块里任意定义表里不存在的字段,在前台调用很方便.话不多说直接上demo: 1.命名规则   get + 属性名的驼峰命名+ Attr 直接就能在m ...

  8. 接口开发,tp5结合swagger-ui安装方法

    今天看到老java用的swagger提供接口,美观好用,方便维护,不是写好接口之后再写接口文档,麻烦的要死.网上找了找结合php的方法,在此记录一下,以后再开发接口就可以方便很多了. Swagger的 ...

  9. TP5 路由使用

    这里可以直接从第四条开始看 原文http://www.upwqy.com/details/12.html 1 文档链接 tp5路由官方文档  https://www.kancloud.cn/manua ...

随机推荐

  1. petri网初步

    历史:Petri网的概念是德国的Carl Adam Petri早在1962年提出来的.他在他的论文里提出了一个新的信息流模型,这个模型基于系统各部分的异步并发的操作,并把各部分之间的关系用网状的图来描 ...

  2. ubuntu 开机自动挂在windows下的分区

    最近装了Ubuntu14.04 + windows7 的双系统,启动Ubuntu的时候,不会自动挂载win7的分区,只有我点击相应的硬盘符号时才会挂载/media下面.本着折腾到底的原则,在网上搜了搜 ...

  3. HDU 1181 变形课 (深搜)

    题目连接 Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形 ...

  4. Python概念-Item系列(林海峰教的)

    这个Item系列是egon老师自创的,个人还是可以接受这种文化底蕴的,所以直接拿来用,也是毫无违和感的 所谓Attr系列,其实是__setattr__,__delattr__,__getattr__ ...

  5. Shell基础-Bash命令类型

    Bash命令大体可以分为两类: 第一类是可执行文件,例如ls等 第二类是Bash内建命令,常见echo,cd等 bash命令优先级表:1别名  由alias指定 2关键字 3函数  由function ...

  6. windbg分析net程序内存泄漏问题

    1       问题简介 有客户反馈,打了最新补丁后,服务器的内存暴涨,一直降不下来,程序非常卡.在客户的服务器上抓了一个dump文件,开始分析. 分析问题的思路: 1.找到是那些资源占用了大量内存? ...

  7. UNIX网络编程 第8章 基本UDP套接字编程

    UDP是无连接的,不需要accept,TCP通过accept API来接受连接,并且将连接客户端的信息写入到accept将返回的新socket中,该新socket中有服务端和客户端的IP地址和端口,因 ...

  8. CSS line-height应用

    一.固定高度的容器,单行文本垂直居中 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf- ...

  9. input 输入框 propertychange

    做搜索功能的时候,经常遇到输入框检查的需求,最常见的是即时搜索,今天好好小结一下. 即时搜索的方案: (1)change事件    触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘或鼠标 ...

  10. C#中HttpWebRequest的GetRequestStream执行的效率太低,甚至偶尔死掉

    为了提高httpwebrequest的执行效率,查到了一些如下设置 request.ServicePoint.Expect100Continue = false; request.ServicePoi ...