$request 的基本使用方法
更改session 配置
#获取浏览器输入框的值
dump($request->domain());//获取域名
dump($request->pathinfo());获取路径信息到?前
dump($request->path());//到最后后缀名前
#请求类型
dump($request->method());//GET or POST
dump($request->isGet());//bool true or false
dump($request->isPost());//bool true or false
dump($request->isAjax());//bool true or false
#获取请求的参数
dump($request->get());//获取问号后参数的值
dump($request->param());//问号前后的两个值
dump($request->post());//获取POST值
//session('name','sunxiaopeng');
dump($request->session());
//cookie('email','sunxiaopeng@163.com');
dump($request->cookie());
dump($request->param('type'));
dump($request->cookie('email'));
#获取模块 控制器 和操作
dump($request->module());
dump($request->controller());
dump($request->action());
dump($request->url());//打印域名后所有内容
dump($request->baseUrl());//打印域名后不带?的所有内容
request
底层thinkphp 下的request 类 ,所在路径
浏览器cookie 在哪查看的 Application
PHP request 方便好用
tp5 $request类使用方法
模塊 控制器 操作
tp框架request类
#获取浏览器输入框的值
dump($request->domain());
dump($request->pathinfo());
dump($request->path());
#请求类型
dump($request->method());
dump($request->isGet());
dump($request->isPost());
dump($request->isAjax());
#获取请求的参数
dump($request->get());
dump($request->param());
dump($request->post());
//session('name','sunxiaopeng');
dump($request->session());
cookie('email','sunxiaopeng@163.com');
dump($request->cookie());
dump($request->param('type'));
dump($request->cookie('email'));
#获取模块 控制器 和操作
dump($request->module());
dump($request->controller());
dump($request->action());
dump($request->url());
dump($request->baseUrl());
think\Request类
用request 方法 获取
输入框的值
domain();
pathinfo();
path();
请求类型
method();
isGet();
isPost();
isAjax();
请求参数
get();
param();
post();
session();
cookie();
获取模块 控制器 操作
module();
controller();
action();
$request->domain()
$request->pathinfo()
$request->path();
$request->method();
#获取浏览器输入框的值
dump($request->domain());
dump($request->pathinfo());
dump($request->path());
#请求类型
dump($request->method());
dump($request->isGet());
dump($request->isPost());
dump($request->isAjax());
#获取请求的参数
dump($request->get());
dump($request->param());
dump($request->post());
//session('name','sunxiaopeng');
dump($request->session());
cookie('email','sunxiaopeng@163.com');
dump($request->cookie());
dump($request->param('type'));
dump($request->cookie('email'));
#获取模块 控制器 和操作
dump($request->module());
dump($request->controller());
dump($request->action());
dump($request->url());
dump($request->baseUrl());
最长用到的 请求对象参数的内置函数方法,如 get() param() session() cookie();
cookie值设置,用 cookie('username','Jakob');
获取数组中某个值,可以直接 $request->cookie('username');
#获取浏览器输入框的值
dump($request->domain());
dump($request->pathinfo());
dump($request->path());
#请求类型
dump($request->method());
dump($request->isAjax());
dump($request->isGet());
dump($request->isPost());
#获取请求的参数
dump($request->get());
dump($request->param());
dump($request->post());
dump($request->session());
dump($request->cookie());
dump($request->param('type'));
dump($request->cookie('email'));
#获取模块 控制器 操作方法
dump($request->module());
dump($request->controller());
dump($request->action());
下面对截图中的url进行分析:"course.io"是配置的域名,"/index/index/index/type/5.html"这一段是pathinfo模式,"?id=10"是get传参部分;
(type是类型的意思)
dump($request->get());返回的是?id=10这一部分;5.0以前的tp版本,通过get()可以获取到pathinfo和?id=5一起被获取到;tp5开始通过get()获取的,就不包含pathinfo那一部分了,看截图;
dump($request->param());返回的是"type/5.html?id=10"这一部分;,"type/5.html"相当于在传参
(type是类型的意思,param 是thinkphp自己写的类型,自动判断是什么类型的数据)
返回的结果看截图,从上到下按顺序
dump($request->domain());返回的是域名
dump($request->pathinfo());返回的是pathinfo模式(带后缀)
dump($request->pathinfo());返回的是真实的pathinfo模式(不带后缀,后缀本来就是假的)
普通模式。如:http://localhost/index.php?m=模块&a=方法
pathinfo模式。如:http://localhost/index.php/模块/方法
对于Thinkphp的用户来说,PATHINFO模式是必须要掌握的,模式下默认以'/'隔开各部分,视觉效果非常好,并且可以通过
'URL_PATHINFO_DEPR'更改为任意符号,非常的方便快捷,更改为"-"或者'_'非常利于seo
PATHINFO模式是系统的默认URL模式,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境。对应上面的URL模式,PATHINFO模式下面的URL访问地址是: http://localhost/index.php/home/user/login/var/value/
PATHINFO地址的前三个参数分别表示模块/控制器/操作。
不过,PATHINFO模式下面,依然可以采用普通URL模式的参数方式,例如: http://localhost/index.php/home/user/login?var=value 依然是有效的
PATHINFO模式下面,URL是可定制的,例如,通过下面的配置:
// 更改PATHINFO参数分隔符'URL_PATHINFO_DEPR'=>'-',
我们还可以支持下面的URL访问: http://localhost/index.php/home-user-login-var-value
通过设置'URL_HTML_SUFFIX' => 'html',可以加上.html后缀,实现伪静态的功能
http://localhost/index.php/home-user-login-var-value.html
总结:thinkphp的url的PATHINFO模式非常的好用,做个博客非常容易SEO,并且伪静态,后面的文章里,我们继续讲解静态化的设置
thinkphp5框架入口文件start.php在加载 核心文件app.php时,
调用app::run(方法名称可能有误,具体以项目为准)运行应用实例,
run()方法中调用了Request::instance()方法,App::run()方法返回Response对象,Response->send()调用send的方法将数据返回给请求客户端
故在app应用目录中传递( Request $request)参数 通过$request->方法名()即可调用请求的URL和对应的参数
其中需要注意的是,thinkphp5不同于之前的3.2版本,get()方法不再获取URL中的param部分,只获取URL后缀以?id=5此格式的参数
$request->param()方法可获取除模块/控制器/方法名 之外的param部分,更多的$request请求获取可参照截图及Request.php文件
dump() url()属于tp5提供的助手函数
get新知识:在浏览器中右击-->审查元素--->页面中有Application中有Cookies点击就可以看到Cookie这个数组的键名和值;因为cookie是客户端的缓存机制(缓存的数据通常经过加密);
session是服务器端的缓存机制,session相对更安全
本教程是对tp5框架的剖析;剖析框架中的框架的目录架构、组成部分、所有执行流程执行原理等等;只需要过一遍有点印象就行,不深入理解也没有关系;框架的熟练运用和理解需要在以后的实战中进行;或者以后经过多次实战开发以后,可以再回来看本教程,那个时候理解起来更深刻,更有同感;
我们最终的目的就是:可以熟练的使用框架进行项目开发;充分利用框架中的各种功能的设置给我们带来的便利
记住:框架所有默认配置信息:都在convention.php中
我们要针对项目单独做配置;就去convention.php中找到默认配置;
复制粘贴到conf下的config.php中进行设置;开启session也是在config.php中开启
这里有个小知识点;使用.html作为后缀来隐藏我们本身的编程语言;这样让我们的网站稍微安全一些;也可以通过修改配置文件来修改文件的后缀名
分清PHP内置函数和tp框架内置函数;
这是两码事;
url中 ?id=10这是get的传参方式
index.php入口文件中只需要定义一些常量,包括引入框架的引导文件
操作对应: