efureev / response-actions
HTTP-Response 单个动作结构
v1.5.0
2023-11-30 14:30 UTC
Requires
- php: ^8.1|^8.2
- ext-mbstring: *
Requires (Dev)
- phpstan/phpstan: ^1.10.14
- phpunit/phpunit: ^10.1.1
- squizlabs/php_codesniffer: ^3.7.2
- symfony/var-dumper: ^6.2
README
动作消息响应结构
{ // Logic data block "data": [], // Action Message block (can be overwritten) "_responseAction": { // Request Execution Status. See: \App\Shared\UI\Response\ActionMessage\Types\StatusEnum::name() "status": "success", // list of actions \App\Shared\UI\Response\ActionMessage\Actions\Action "actions": [ { // ... some action's body } ] } }
动作
- 消息
- 消息错误:带有代码的消息
- 命令
- Http命令
- 下载
- 事件
- 重定向
通用动作属性
{ // Action's Name "name": "message", // Action Order to perform. Default = 0 "order": 1, }
动作消息
{ // message to show to user "message": "It's done!", // Type of the message "type": "info", }
ResponseAction::successMessage('Operation has success!');
您可以使用不同类型的多个消息
ResponseAction::errorMessage('Operation has failed!') ->addAction(Message::info('Try to restart page'));
动作消息错误
{ // message to show to user "message": "It's done!", // type: int|string "code": 321, "type": "error", }
动作命令
{ // done | failed "status": "failed", // type: string|null "description": "Reason..." }
动作下载
{ "url": "https://example.com/file.pdf", "name": "Readme.pdf", }
动作事件
{ "event": "uploadData", "params": [], }
动作重定向
{ "url": "https://example.com", "target": "_blank", }
私有
您可以使用私有属性
$responseAction = ResponseAction::successMessage('Operation has done!') ->addAction( Event::make('log', ['saved!', 'continue watching...']), Event::make('uploadModuleData')->private(), Event::make('uploadData')->private('menu'), Event::make('refreshUser')->private('authUser')->setOrder(1), Redirect::make('https://example.com')->setOrder(5), Download::make('https://example.com/file.pdf', 'Readme.pdf')->setOrder(2), );
额外数据
您可以使用额外数据
$responseAction = ResponseAction::cmdDone() ->withExtra([]);