swoft response

  • 响应对象 response
  • 响应对象 response 的获取
  • 返回响应信息
    • 设置状态码
    • 输出字符串
    • 输出数组
    • 输出头信息
    • 重定向
    • 文件下载
    • 设置 cookie
    • 其他方法

响应对象 response

响应对象 Response 为 Swoft\Http\Message\Response

查看 response 对象源码,文件路径为 vendor/swoft/http-message/src/Response.php

class Response implements ResponseInterface
{use CookiesTrait, MessageTrait, PrototypeTrait;...
}

可知 response 对象实现了 ResponseInterface 接口,另外引用 CookiesTrait, MessageTrait, PrototypeTrait 三个trait

响应对象 response 的获取

  1. 通过控制器方法注入
  2. 通过请求上下文获取
<?php declare(strict_types=1);namespace App\Http\Controller;use Swoft\Context\Context;
use Swoft\Http\Message\ContentType;
use Swoft\Http\Message\Request;
use Swoft\Http\Message\Response;
use Swoft\Http\Server\Annotation\Mapping\Controller;
use Swoft\Http\Server\Annotation\Mapping\RequestMapping;/*** Class TestController* @package App\Http\Controller* @Controller(prefix="test")*/
class TestController
{/*** @RequestMapping(route="index")* @param Request $request* @return Response*/public function index(Request $request) : Response{$path    = $request->getUriPath();$headers = $request->getHeaders();$data    = ['path'    => $path,'headers' => $headers,];$headers = ['token' => 'akdhfheiwoadskajkdjoihh=ahdiu0-2hds',];$response = Context::mustGet()->getResponse();return $response->withStatus(200)->withContentType(ContentType::JSON)->withHeaders($headers)->withData($data);}/*** @RequestMapping(route="test")* @param Request $request* @param Response $response* @return Response*/public function test(Request $request,Response $response){return $response->withData(['name'=>'swoft']);}
}

返回响应信息

设置状态码

 $response = \Swoft\Context\Context::mustGet()->Response();return $response->withStatus(403);

输出字符串

return $response->withContent("Hello World");

输出数组

$data = ['name'=>'swoft'];return $response->withData($data);

输出头信息

 $headers = ['token'=>'dhsjagfuigfiugu=-dsah=dsaj'];return $response->withHeaders($headers);

重定向

  return $response->redirect("http://www.swoft.org",302);

文件下载

 return $response->file(\alias('@runtime/1.zip'), "application/octet-stream");

设置 cookie

    $response = $response->withCookie(’name', 'value');$cookies = ['key1' => 'value1','key2' => ['value' => 'value2'],];$response = $response->withCookies($cookies);

其他方法

还有很多方法,比如设置返回数据 Json 类型等,在这里就不一一罗列了,可以查看源代码或者官方文档查看,另外注意 is 开头的方法,有助于理解标准的 http 状态码的意义。

[swoft学习笔记之response篇][1]

[1][https://blog.csdn.net/zs_4336/article/details/99304109]

swoft response相关推荐

  1. mysql环境搭载后老出错_使用Docker在window10下搭建SWOFT开发环境,mysql连接错误

    使用Docker在window10下搭建SWOFT开发环境,mysql连接错误 { "code": 0, "error": "(Swoft\\Db\\ ...

  2. swoft php怎么样,[原创]Swoole和Swoft的那些事 (Http/Rpc服务篇)

    Swoft在PHPer圈中是一个门槛较高的Web框架,不仅仅由于框架本身带来了很多新概念和前沿的设计,还在于Swoft是一个基于Swoole的框架.Swoole在PHPer圈内学习成本最高的工具没有之 ...

  3. Swoft View 视图

    参考资料 swoft-view https://github.com/swoft-cloud/swoft-view Swoft提供PHP原生语法的视图渲染支持,并提供基础的布局以及内部引入文件等功能. ...

  4. Swoft 2.x 详解Bean

    什么是Bean呢? Swoft中Bean是一个类的对象实例 每个被Swoft管理的PHP对象称之为Bean Swoft提供了一个IoC容器来初始化对象和获取对象,用来解决对象之间的依赖管理. 以前当我 ...

  5. swoft 协程 的使用

    控制器访问 /hi /*** @Swoft\Bean\Annotation\Mapping\Inject("UserService")* @var UserService*/pub ...

  6. Swoft入门及技术指南

    初识Swoft 参考素材 swoft官网:http://swoft.org/ 在线官方文://档:http://www.swoft.org/documents/v2/ http://swoft.org ...

  7. php swoft 路由,Swoft 源码解读

    PHP 里面的 yii/laravel 框架算是非常「重」的了. 这里的 重 先不具体到 性能 层面, 主要是框架的设计思想和框架集成的服务, 让框架可以既可以快速解决很多问题, 又可以轻松扩展. P ...

  8. Swoft 2.x 微服务基础(Consul、RPC 服务发现、限流与熔断器)

    本篇概要: 1. Swoft 服务注册与发现: 1.1 Consul 概况: 1.2 在 Consul 注册服务.反注册: 1.2.1 注册服务: 1.2.2 反注册: 1.3 健康检查: 1.4 服 ...

  9. php swoft 路由,(swoft-2.x框架)1、使用入门

    说明 php7由于新框架须要安装swoole,只能linux环境运行,这里本机开发是win10(:debian云服务器主机上git clone 项目,再同步到本机phpstorm.修改提交:或使用wi ...

最新文章

  1. idea中实体类右击没有ptg_几个牛逼的IDEA插件,Java开发者撸码神器,还带动图的!...
  2. 【大二在读】说说我对“软件工程”的理解
  3. Android之Launcher分析和修改1——Launcher默认界面配置(default_workspace)
  4. 有生之年必看!原来历史还可以这样震撼,看完我惊呆了...
  5. OpenGL研究3.0 多边形区域填充
  6. 算法的优缺点_一文总结机器学习各算法优缺点
  7. HttpServletRequest和ServletRequest的区别
  8. 职业生涯设计的10点忠告
  9. 视觉中国网站部分恢复上线? 官方回应:并没有
  10. XAMPP中Apache因为端口原因不能启动的解决方法
  11. plsql 自动查询最后页_一次SQL查询优化思考过程(900W+数据,从17s到300ms)
  12. 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)
  13. SHA256算法原理及其实现
  14. 软件分享 | 第十三期 全球最牛的资源下载神器IDM
  15. Android手机指纹驱动工作原理
  16. 小程序apkg还原_谈一谈还原解包后小程序页面wxss样式的若干方法
  17. 两种特殊卷积:转置卷积和空洞卷积
  18. GIS空间分析之Clip
  19. 明天见丨云和恩墨生态产品发布会双平台直播,三款新品即将揭晓
  20. 十一、HTML常用标签

热门文章

  1. 投影机拼接融合技术--DXUT框架
  2. iSee也能用PS滤镜了
  3. 1024 献礼,10 个前端开发者必收的高赞资源
  4. JS公式实例一:画圆
  5. python中关于圆的代码
  6. 2022年全球与中国机载高光谱成像相机市场现状及未来发展趋势
  7. 数据库作业8:SQL Server 的部分操作(授权:授予与收回)
  8. 邮箱系统原理——基本原理
  9. 送用户的计算机如何交税,电脑销售个体户是怎么交税
  10. 炉石传说 C# 开发笔记 (续)