manhhuyvo/action-response
最新稳定版本:v1.0.1
Composer 安装命令:
composer require manhhuyvo/action-response
包简介
A fluent, structured PHP action response class which supports messages, errors, and data.
README 文档
README
A lightweight and expressive response helper designed to provide a consistent structure when returning action results in PHP applications.
This package includes:
- A
Responseclass with a fluent API - A
ResponseStatusenum (success,error,snooze) - Convenience constructors (
success(),error(),snooze()) - Helpers for attaching messages, errors, data, and retrieving nested data via dot notation
📦 Installation
Install via Composer:
composer require manhhuyvo/action-response
🚀 Basic Usage
Create a success response
use ManhHuyVo\ActionResponse\Response; $response = Response::success() ->message('Action completed successfully.') ->data(['foo' => 'bar']); return $response;
Create an error response
$response = Response::error() ->message('Unable to process request.') ->errors(['Invalid input', 'Another error']); return $response;
Create a snooze response
Useful when the action should be skipped or is not applicable.
$response = Response::snooze() ->message('Skipping this action for now.'); return $response;
🧱 Response Structure
A Response object contains:
| Property | Type | Description |
|---|---|---|
status |
string | One of success, error, snooze |
message |
string | Optional explanation |
errors |
array | Unique list of errors (duplicates removed automatically) |
data |
array | Optional payload |
Example structure:
[
'status' => 'success',
'message' => 'Action completed successfully.',
'errors' => [],
'data' => [
'foo' => 'bar'
],
]
🔍 Status Checking
$response->isSuccessful(); // true / false $response->isError(); // true / false $response->isSnooze(); // true / false
🎯 Setting Values Manually
$response = (new Response()) ->status('success') ->message('Done') ->data(['x' => 1]) ->errors([]); return $response;
📥 Accessing Nested Data (Dot Notation)
If your data is nested:
$response = Response::success()->data([ 'user' => [ 'profile' => [ 'email' => 'john@example.com' ], ], ]);
You can fetch nested values:
$response->getData('user.profile.email'); // "john@example.com"
🧩 ResponseStatus Enum
enum ResponseStatus: string { case Success = 'success'; case Error = 'error'; case Snooze = 'snooze'; }
🧪 Running Tests
If you are developing locally, run PHPUnit:
vendor/bin/phpunit --testdox
📚 Example Usage in a Real Action
use ManhHuyVo\ActionResponse\Response; function processOrder(array $order): Response { if (empty($order)) { return Response::error() ->message('Order cannot be empty.') ->errors(['order_empty']); } if ($order['status'] === 'skipped') { return Response::snooze() ->message('Order skipped.'); } return Response::success() ->message('Order processed.') ->data(['id' => 123]); }
📝 License
MIT License.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-12-06