khalyomede / php-jur
遵循JSON统一响应标准的PHP类
v2.0.0
2018-06-21 22:00 UTC
Requires
- php: >=7.2.0
Requires (Dev)
- khalyomede/matcha: 0.*
README
Json统一响应(JUR)为PHP。
摘要
若要支持PHP 5.X,请使用本库的1.*版本。注意1.*版本已不再维护。
标准
Json统一响应(JUR)是以一致的方式交付JSON响应的方法。要了解更多信息,请访问官方文档。
安装
在您的项目根目录中,输入以下命令
composer require khalyomede/php-jur:2.*
示例
获取JSON字符串响应
require(__DIR__ . '/../vendor/autoload.php'); $response = jur() ->request('get') ->data([ ['id' => 1, 'name' => 'New in PHP 7.2', 'author' => 'Carlo Daniele'], ['id' => 2, 'name' => 'Help for new PHP project', 'author' => 'Khalyomede'] ]) ->toJson(); echo $response;
{"message":null,"request":"get","data":[{"id":1,"name":"New in PHP 7.2","author":"Carlo Daniele"},{"id":2,"name":"Help for new PHP project","author":"Khalyomede"}],"debug":{"elapsed":27,"issued_at":1529617930807795,"resolved_at":1529617930807822}}
获取数组响应
require(__DIR__ . '/../vendor/autoload.php'); $response = jur() ->request('get') ->data([ ['id' => 1, 'name' => 'New in PHP 7.2', 'author' => 'Carlo Daniele'], ['id' => 2, 'name' => 'Help for new PHP project', 'author' => 'Khalyomede'] ]) ->toArray(); print_r($response);
Array ( [message] => [request] => get [data] => Array ( [0] => Array ( [id] => 1 [name] => New in PHP 7.2 [author] => Carlo Daniele ) [1] => Array ( [id] => 2 [name] => Help for new PHP project [author] => Khalyomede ) ) [debug] => Array ( [elapsed] => 24 [issued_at] => 1.5296179859844E+15 [resolved_at] => 1.5296179859845E+15 ) )
获取对象响应
require(__DIR__ . '/../vendor/autoload.php'); $response = jur() ->request('get') ->data([ ['id' => 1, 'name' => 'New in PHP 7.2', 'author' => 'Carlo Daniele'], ['id' => 2, 'name' => 'Help for new PHP project', 'author' => 'Khalyomede'] ]) ->toObject(); print_r($response);
stdClass Object ( [message] => [request] => get [data] => Array ( [0] => Array ( [id] => 1 [name] => New in PHP 7.2 [author] => Carlo Daniele ) [1] => Array ( [id] => 2 [name] => Help for new PHP project [author] => Khalyomede ) ) [debug] => stdClass Object ( [elapsed] => 27 [issued_at] => 1.5296180326839E+15 [resolved_at] => 1.5296180326839E+15 ) )
将消息附加到响应中
require(__DIR__ . '/../vendor/autoload.php'); $response = jur() ->request('post') ->message('Task saved.') ->data([ 'id' => 42 ]) ->toJson(); echo $response;
{"message":"Task saved.","request":"post","data":{"id":42},"debug":{"elapsed":26,"issued_at":1529618086871988,"resolved_at":1529618086872014}}
设置自定义时间戳
require(__DIR__ . '/../vendor/autoload.php'); $response = jur(); // ... $response->issued(); // ... $response->request('post') ->message('Task saved') ->data([ 'id' => 42 ]); // ... $response->resolved(); // ... echo $response->toJson();
{"message":"Task saved","request":"post","data":{"id":42},"debug":{"elapsed":10,"issued_at":1529618141842064,"resolved_at":1529618141842074}}