请求处理¶

Request¶

zan框架提供操作request的类和方法,文件位于src/Network/Http/Request/Request.php。类中方法包括

  1. //访问的url为http://127.0.0.1:8030/index/index/getUrl?a=1&b=2
  2. //下列接口对应的返回值
  3. //http://127.0.0.1:8030/index/index/getUrl
  4. public function getUrl()
  5. //http://127.0.0.1:8030/index/index/getUrl?a=1&b=2
  6. public function getFullUrl()
  7. //index/index/getUrl
  8. public function getPath()
  9. //index/index/getUrl
  10. public function getDecodedPath()
  11. /*array(3) {
  12. [0] =>
  13. string(5) "index"
  14. [1] =>
  15. string(5) "index"
  16. [2] =>
  17. string(6) "getUrl"
  18. }*/
  19. public function getSegments()
  20.  
  21. //下列方法对应php中的全局变量_GET、_POST、_COOKIE、_SERVER数组,$key为null时直接返回数组,否则返回对应key的值
  22. public function get($key = null, $default = null)
  23. public function post($key = null, $default = null)
  24. public function cookie($key = null, $default = null)
  25. //请求相关的server信息,如调用者ip和port等信息
  26. public function server($key = null, $default = null)
  27. //HTTP包中的头信息数组
  28. public function header($key = null, $default = null)
  29. //HTTP POST的json字符串
  30. public function json($key = null, $default = null)

Context¶

context包含了请求的上下文信息,如request、session等,使用方式为

  1. $request = (yield getContext('request'));
  2. $request = (yield getContext('session'));

Session¶

从context获取session之后,session的操作方法包括

  1. class Session {
  2. //session中设置key-value
  3. public function set($key, $value);
  4. //获取session中key的值
  5. public function get($key);
  6. //删除session,使之失效
  7. public function destory();
  8. //删除session中某个key的值
  9. public function delete($key);
  10. }

Response¶

zan框架的Controller中返回的都是ZanFrameworkNetworkHttpResponseResponse对象,对象中方法包括

  1. public function withHeader($key, $value, $replace = true)
  2. public function withHeaders(array $headers)
  3. public function withCookie($cookie)
  4. public function withCookies(array $cookies)
  5. public function setContent($content)

withHeader和withHeaders设置响应中的头部信息,withCookie和withCookies设置响应中的cookie信息,setContent设置响应包内容。

辅助方法¶

获取客户端ip¶

  1. $request->getClientIp()

在通过反向代理(如nginx)访问server时,此方法需要在resource/config/$ENV/server.php中配置trustproxy ip,配置示例见server.php中的proxy字段。

原文: http://zanphpdoc.zanphp.io/MVC/request_handle.html