jakubboucek / openwhisk-runtime
PHP 的 OpenWhisk 运行时工具,例如与 DigitalOcean Serverless Functions 一起使用
v0.1.0
2023-09-09 09:53 UTC
Requires
- php: ^8.2
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- phpstan/phpstan: 1.10.33
This package is auto-updated.
Last update: 2024-09-17 10:34:53 UTC
README
此库为在 OpenWhisk 运行时内部运行的 PHP 应用程序提供更简洁的处理响应的工具。OpenWhisk 运行时。
在 原始 OpenWhisk 动作 中,你需要返回一个清晰定义的数组 - 这缺少类型控制,并且有些脏乱。
此库提供工具来构建大多数常见情况下的响应(HTTP、HTML、JSON 响应等)。
安装
composer require jakubboucek/openwhisk-runtime
用法
不使用此库发送 OpenWhisk 运行时的响应
<?php function main(array $args) : array { $name = $args['name'] ?? 'stranger'; $greeting = "Hello $name!"; return ['body' => $greeting, 'headers' => ['Content-Type' => 'text/html; charset=utf-8']]; }
原始响应(仅用于与 OpenWhisk 的原始版本向后兼容)
<?php use JakubBoucek\OpenWhisk\Runtime\Response; function main(array $args) : array { $name = $args['name'] ?? 'stranger'; $greeting = "Hello $name!"; return new Response\RawResponse(['body' => $greeting, 'headers' => ['Content-Type' => 'text/html; charset=utf-8']]); }
原始 JSON 响应(仅用于与 OpenWhisk 的原始版本向后兼容)
<?php use JakubBoucek\OpenWhisk\Runtime\Response; function main(array $args) : array { $name = $args['name'] ?? 'stranger'; $greeting = "Hello $name!"; return new Response\RawJsonResponse(['message' => $greeting]); }
HTTP 响应
<?php use JakubBoucek\OpenWhisk\Runtime\Response; function main(array $args) : array { if (!isset($args['name'])) { return (new Response\HttpResponse("Error: Missing required field 'name'.")) ->setStatusCode(400) ->setContentType(Response\HttpHeader::PlainContentType); } $greeting = "Hello {$args['name']}!"; return (new Response\HttpResponse($greeting)) ->setContentType(Response\HttpHeader::PlainContentType); }
HTML 响应
<?php use JakubBoucek\OpenWhisk\Runtime\Response; function main(array $args) : array { $name = $args['name'] ?? 'stranger'; $greeting = sprintf('Hello <strong>%s</strong>!', htmlspecialchars($name)); return new Response\HtmlResponse($greeting); }
JSON 响应
<?php use JakubBoucek\OpenWhisk\Runtime\Response; function main(array $args) : array { if (!isset($args['name'])) { return (new Response\JsonResponse(['error' =>"Error: Missing required field 'name'.")) ->setStatusCode(400); } $greeting = "Hello {$args['name']}!"; return new Response\JsonResponse(['message' => $greeting]); }
捕获标准输出缓冲区响应
<?php use JakubBoucek\OpenWhisk\Runtime\Response; use JakubBoucek\OpenWhisk\Runtime\Source; function main(array $args) : array { $response = new Response\DynamicResponse(new Source\OutputBuffer()); echo 'Dumping $args variable:' . "\n"; var_dump($args); return $response; }