TP5日记(1)

Posted by Heber on December 19, 2017

安装

Thinkphp5有三种安装方式: 1、从github克隆 2、composer安装 3、直接从TP5的官网下载压缩包解压即可。

配置

默认的配置在/thinkphp/convertion中,但通过在/public/index.php中添加一条语句 define(‘CONF_PATH’,DIR . ‘/../conf/’); 可以定义一个优先级更高的配置点,我们在与application同级的目录下新建一个名为conf的文件夹,在其中新建config.php文件,就可以在其中修改全局配置了。还有其他多种配置,包括应用配置、扩展配置、场景配置、模块配置、动态配置。这些配置都是通过区别优先级来适配各种场景。还有config类以及config助手函数,都是为了快速切换配置来提高开发效率。 image

关于request对象

三种生成方法,分别是: 1、$request = request(); 2、use think\Request; public function Index(Requset $request){

} 3、use think\Request; public function Index(){ $request = Request::instance(); } 在日常使用中,推荐第二种,比较正式,也比较简洁。接下来展示一下request的各种方法的使用。

 public function index(Request $request)
    {
    	//获取浏览器地址栏的部分值,以http://127.0.0.1/thinkphp5/public/index/index/index/type/5.html?id=8为例

    	//获得域名,此处为http://127.0.0.1
    	dump($request->domain());
    	//获得路径名,此处为index/index/index/type/5.html
    	dump($request->pathinfo());
    	//获得真实路径名,此处为index/index/index/type/5
    	dump($request->path());


    	//请求类型

    	//判断请求类型,此处为GET
    	dump($request->method());
    	//判断是否为GET,此处为true
    	dump($request->isGet());
    	//判断是否为POST,此处为false
    	dump($request->isPost());
    	//判断是否为Ajax,此处为false
    	dump($request->isAjax());


    	//请求的参数

    	//获取get方式传递的参数,此处为array(["id"] => "8")
    	dump($request->get());
    	//获取post方式传递的参数,此处为array()
    	dump($request->post());
    	//获取传递的参数,此处为array(["id"] => "8"["type"] => "5")
    	dump($request->param());


    	//关于session与cookie

    	//设置session的值
    	session('name','heber');
    	//获取session的参数,此处为array(["name"] => "heber")
    	dump($request->session());
    	//获取cookie的参数,此处为array(["PHPSESSID"] => "8bb5b443abe491c906c0d04f433c7a8b")
    	dump($request->cookie());
    	//设置cookie的值
    	cookie('sex','male');
    	//获取cookie中某个值,此处为male,注意,此方法对session、get、post同样适用
    	dump($request->cookie('sex'));

    	//获取控制器、模块、操作,刚好这里都是index
    	dump($request->controller());
    	dump($request->module());
    	dump($request->action());


    }

input助手函数

和config助手函数类似,input助手函数也是为了方便我们的使用而出现的。不过还是推荐使用request方法,input助手虽然比较方便,但是可读性较差。具体用法如下

//以http://127.0.0.1/thinkphp5/public/index/index/index/type/5.html?id=abc为例来说明input的使用方法

    	//取值

    	//获取id的值,此处为abc
    	$res = input('id');
    	dump($res);
    	//获取以get方式传递的id的值,此处为abc
    	$res = input('get.id');
    	dump($res);
    	//获取以post方式传递的id的值,此处为NULL
    	$res = input('post.id');
    	dump($res);
    	//获取session的值,此处为heber
    	session('name','heber');
    	$res = input('session.name');
    	dump($res);

    	//设置默认值,即如果参数不存在,则返回默认值

    	//取sid的值,但sid不存在,此处为默认值100
    	$res = input('sid',100);
    	dump($res);
    	//已存在的变量不会返回默认值,此处为abc
    	$res = input('id',100);
    	dump($res);
    	//第三个参数为传值添加过滤,此处为只允许整形通过,则此处既不是原来的值,也不是默认值,而是0
    	$res = input('id',10,'intval');
    	dump($res);
    	//获取session的值,若session不存在,则返回默认值此处为male
    	$res = input('session.sex','male');
    	dump($res);

image

##响应对象

TP5可以通过convention中的 default_return_type 来定义返回对象的格式,默认为html,我们可以通过动态配置来灵活地改变返回对象的格式。在正式的开发中,可以通过在入口文件配置来一劳永逸地配置。

<?php
namespace app\index\controller;
use think\Request;
use think\Config;

class Index{
    public function index($type = 'json')
    {
        if(!in_array($type,['json','xml'])){
            $type = 'json';
        }
        $data = [
            'name' => 'heber',
            'age' => '11'
        ];
        Config::set('default_return_type',$type);
        return $data;
    }

   
}