request组件 : request 有三个部分
mesasge 文件夹里面的 request 和serverrequest(serverrequest继承自request)http里面的 request

1.message里面的request:

    函数 :
        __construct():构造函数
           getRequestTarget():获得请求的路径
        getMethod():获得请求方法
        getUri():获得请求的url
        withRequestTarget():设置请求路径
        withMethod():设置请求方法
        withUri():设置请求的url
         这里面的url是封装的类,利用pares_url()函数

2.serverrequest类继承自上面的request类

    变量:
        $attribute 用于存取一些额外的信息,可以在控制器中往这个变量里面放信息,注意变量不能多进程共享
        私有$cooikeParams 用于存放cookie数组,
        私有$parseBody 用于存放post数据
        私有$queryParams 用于存放get参数数组
        私有$serverParams 用于存放服务器参数数组
        私有$uploadFiles 用于存放上传文件的数组
    函数:
        构造函数和 一系列获得变量和设置变量的参数

3.http下的request类继承自上面的serverrequest类 此类用了单例模式所以每次请求只会初始化一次

    函数:
        __construct():在此函数传入了swoole扩展的request的对象,将request对象存入类变量
        依次执行
        initheaeder() 通过swoole的request对象的header遍历,调用父类的withAddHeader()函数增加继承下来的header字段
        initFiles()  通过swoole的request对象 的files属性 遍历,初始化自己的封装的file类 ,存到 file字段
        initCookie() 把swoole的request对象的cookie赋值出来
        initPost()     把swoole的request对象的post赋值出来
        initGet()    把swoole的request对象的get赋值出来

    公有函数:
        getRequestParam()获得请求参数
        RequestParamValidate()验证参数合法性
        getSwooleRequest()获得request实例
        session()获得session实例

总结: 框架运行的时候,会初始化一个http/request类,该类在一次请求时只会调用一次,初始化过程中会把swoole的request的参数全部提取出来复制到类中,便于统一操作;

response组建 response有两个类 http的response类继承于message的response 1.message的response

    变量:
        $statusCode 状态码
        $responsePhare ’ok‘
        $cookies   存储cookie数组
    函数:
        getstatuscode() 获取状态码
        getresponsePhare()
        witgAddCookies()增加数组
        getCookies()获取数组

2.http的response

此类使用单例模式,用户每次请求只会实例化一次 在构造函数的时候,会将swoole的response的对象复制过来

       函数:
        end() 将标志位设为1,意味着write结束了
        isendresponse() 判断是否结束
        write()向body写入数据,body的数据是拿来返回用的,body变量继承自                               message类        
        writejson()同理写入json数据
        redirect() 向header头写入跳转的url
        setcookie() 设置cookie
        forward()
        session()
        getswooleresponse()获得swoole原生的response

整体梳理: 在用户的请求事件,框架会调用swoole的response对象和request对象, 通过两个对象实例化出一个response类和request类 两个类分别封装类请求和返回各种方法

results matching ""

    No results matching ""