用AI赚第一桶💰低成本搭建一套AI赚钱工具,源码可二开。 广告
目录 [TOC] ## 返回响应 你可以在路由闭包或控制器方法中返回响应数据。框架会将响应数据构建成 HTTP 响应返回给客户端。 ## 响应返回值 ### 数组、对象 当返回数组、对象时,框架会将返回值编码为 json 数据作为 HTTP 响应主体返回给用户。 ### 字符串 当返回字符串时,框架会原封不动的将字符串作为 HTTP 响应主体返回给用户。 ### 闭包 返回闭包时框架会在构建 HTTP Response 时执行闭包。默认以空字符串作为 HTTP 响应主体返回给用户。 ## header WorkerF\Http\Response 类的 header($headers) 方法可以为 HTTP 响应添加首部信息。 例子: ```php namespace App\Controller; use App\Controller\Controller; use WorkerF\Http\Response; class TestController extends Controller { public function test() { // 为 HTTP 响应添加首部 Response::header('Content-Type: text/plain'); return 'some data'; } } ``` 你也可以一传入一个数组添加多个首部: ```php namespace App\Controller; use App\Controller\Controller; use WorkerF\Http\Response; class TestController extends Controller { public function test() { $headers = [ 'Content-Type: text/plain', 'Content-Encoding: gzip', ]; Response::header(); return 'some data'; } } ``` ## redirect WorkerF\Http\Response 类的 redirect($path) 方法提供了一个底层的 URL 重定向功能,WorkerF\Http\Route::redirect() 方法就是基于此方法。 同样,redirect 方法的返回值也需要被路由闭包或控制器方法返回才有效。 ```php namespace App\Controller; use App\Controller\Controller; use WorkerF\Http\Response; class TestController extends Controller { public function test() { // URL 重定向,必须返回才有效 return Response::redirect('http://www.test.com');; } } ``` ## session 在 WorkerA 中你可以直接使用 workerman 的原生方法来处理会话。 开启会话: ```php use Workerman\Protocols\Http; ... Http::sessionStart(); ``` 设置 session: ```php use Workerman\Protocols\Http; ... Http::sessionStart(); $_SESSION['test'] = 'hello'; ``` 获取 session: ```php use Workerman\Protocols\Http; ... Http::sessionStart(); $test = $_SESSION['test']; ``` ## cookie 同样,你可以使用 workerman 提供的 setCookie 方法来设置 cookie。 ```php use Workerman\Protocols\Http; ... $name = 'test'; $value = '11223'; $maxage = 0; $path = '/'; $domain = 'test.com'; $secure = false; $HTTPOnly = true; Http::setCookie($name, $value, $maxage, $path, $domain, $secure, $HTTPOnly); ``` > 注:也可以使用 WorkerF\Http\Response::header 方法设置 Set-Cookie 响应头实现。 ## 响应压缩编码 不同于 apache 和 nginx 的环境,HTTP 响应主体的压缩编码需要框架来做。WorkerA 实现了对 HTTP 响应主体的编码功能,支持 gzip 和 deflate 编码格式。 压缩编码的配置在配置文件 config/app.php 中: ```php 'compress' => [ // 编码格式,如果无需编码,设置为 '' 'encoding' => 'gzip', // 压缩等级,从 1 到 9 'level' => '5', // 接受压缩的内容,其他类型不会被压缩 'content_type' => [ 'application/json', 'text/html', ], ], ```