efureev/response-actions
最新稳定版本:v2.1.2
Composer 安装命令:
composer require efureev/response-actions
包简介
Single Action structure for HTTP-Response
关键字:
README 文档
README
Install
For php >= 8.4
composer require efureev/response-actions "^2.0"
Action Message Response Structure
{ // Action Message block (can be overwritten with a custom key) "_responseAction": { // Request Execution Status. See: ResponseActions\\StatusEnum "status": "success", // list of actions: array of ResponseActions\\Actions\\Action "actions": [ { // ... some action's body } ], // optional extra payload attached to the response action "extra": { } } }
Actions
- Message
- Command
- Download
- Event
- Redirect
Common Action's Props
{ // Action's Name "name": "message", // Action order to perform. Default = 0 "order": 1, // Private action. boolean true or string channel name "private": true }
Action Message
{ // message to show to user "message": "It's done!", // Type of the message (optional when type is empty) "type": "info" }
use ResponseActions\ResponseAction; use ResponseActions\Actions\Message; ResponseAction::successMessage('Operation has success!'); // Multi-message with different types ResponseAction::errorMessage('Operation has failed!') ->addAction(Message::info('Try to restart page'));
Action Command
{ // pending | done | failed "status": "failed", // optional description "description": "Reason..." }
Helpers:
- ResponseAction::cmd() // pending
- ResponseAction::cmdDone() // done
- ResponseAction::cmdFailed() // failed
Action Download
{ "url": "https://example.com/file.pdf", "file": "Readme.pdf", // optional params passed to the client handler "params": {} }
Action Event
{ "event": "uploadData", "params": {} }
Action Redirect
{ "url": "https://example.com", "target": "_blank", // native | router "type": "native", // HTTP code (when applicable) "code": 302 }
You can also use helpers:
- ResponseAction::redirect('https://example.com')
- ResponseActions\Actions\Redirect::router('/route')
- ResponseActions\Actions\Redirect::native('https://example.com')
Private
You can use private props and order:
use ResponseActions\ResponseAction; use ResponseActions\Actions\{Event, Redirect, Download}; $responseAction = ResponseAction::successMessage('Operation has done!') ->addAction( new Event('log', ['saved!', 'continue watching...']), (new Event('uploadModuleData'))->private(), (new Event('uploadData'))->private('menu'), (new Event('refreshUser'))->private('authUser')->withOrder(1), (new Redirect('https://example.com'))->withOrder(5), (new Download('https://example.com/file.pdf', 'Readme.pdf'))->withOrder(2), );
ExtraData
You can attach extra data to the whole ResponseAction or to Message actions:
use ResponseActions\ResponseAction; $responseAction = ResponseAction::cmdDone() ->withExtra(['any' => 'thing']);
统计信息
- 总下载量: 7.89k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-04-21