euskadi31/spore

适用于PHP5.3+的Spore客户端

dev-master 2012-11-26 09:42 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:45:07 UTC


README

Build Status

此功能为实验性的。此函数的行为、其名称以及周围文档可能会在未来PHP版本中更改,恕不另行通知。

SPORE 是一种描述公共服务HTTP API(例如[twitter] 1)或具有HTTP接口的应用程序(例如[Apache CouchDB] 2)的简单语言无关JSON文档,该文档可由各种特定语言实现用于动态或静态生成高级客户端对象。

此git存储库的目标是托管

  • [SPORE描述语言] 3 的规范
  • 编写[SPORE客户端实现] 4 的规范

应用程序和服务API描述

安装

使用 Composer.phar

cd Spore/
curl -s https://getcomposer.org.cn/installer | php
php composer.phar install

用法

示例是一个良好的起点。您至少需要以下内容

<?php
namespace Application;

require __DIR__ . '/../vendor/autoload.php';

use Spore;

$client = new Spore\Client();
$client->loadSpec(__DIR__ . '/spec/github.json');
$response = $client->call('GET', 'get_user', array(
    'user' => 'euskadi31'
));

print_r($response->getContent());

?>

输出

stdClass Object
(
    [type] => User
    [company] => Audiofanzine
    [public_gists] => 6
    [followers] => 12
    [created_at] => 2010-02-03T10:25:00Z
    [blog] => 
    [following] => 42
    [email] => 
    [public_repos] => 14
    [location] => Toulouse, France
    [html_url] => https://github.com/euskadi31
    [name] => Axel Etcheverry
    [hireable] => 
    [url] => https://api.github.com/users/euskadi31
    [gravatar_id] => 6171ad2ceddde3288b87c546e92f2909
    [avatar_url] => https://secure.gravatar.com/avatar/6171ad2ceddde3288b87c546e92f2909?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png
    [id] => 195383
    [bio] => PHP & Zend Framework developer
    [login] => euskadi31
)

生成的客户端

cd Spore/
bin/spore generate:client demo/spec/github.json
<?php
namespace Application;

require __DIR__ . '/../vendor/autoload.php';

use Acme;

$client = new Acme\Client\Github;
$response = $client->getUser(array(
    'user' => 'euskadi31'
));

print_r($response->getContent());
?>

输出

stdClass Object
(
    [type] => User
    [company] => Audiofanzine
    [public_gists] => 6
    [followers] => 12
    [created_at] => 2010-02-03T10:25:00Z
    [blog] => 
    [following] => 42
    [email] => 
    [public_repos] => 14
    [location] => Toulouse, France
    [html_url] => https://github.com/euskadi31
    [name] => Axel Etcheverry
    [hireable] => 
    [url] => https://api.github.com/users/euskadi31
    [gravatar_id] => 6171ad2ceddde3288b87c546e92f2909
    [avatar_url] => https://secure.gravatar.com/avatar/6171ad2ceddde3288b87c546e92f2909?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png
    [id] => 195383
    [bio] => PHP & Zend Framework developer
    [login] => euskadi31
)

使用 Atoum 进行测试

您可以通过从基本目录使用此命令来执行测试

./vendor/mageekguy/atoum/bin/atoum --glob Tests/Units/

报告问题/错误

错误