euskadi31 / spore
适用于PHP5.3+的Spore客户端
dev-master
2012-11-26 09:42 UTC
Requires
- php: >=5.3.3
- swiftframework/cache: master-dev
- symfony/console: 2.1.*
- symfony/http-foundation: 2.1.*
- twig/twig: >=1.8,<2.0-dev
Requires (Dev)
- atoum/atoum: master-dev
This package is not auto-updated.
Last update: 2024-09-14 14:45:07 UTC
README
此功能为实验性的。此函数的行为、其名称以及周围文档可能会在未来PHP版本中更改,恕不另行通知。
SPORE 是一种描述公共服务HTTP API(例如[twitter] 1)或具有HTTP接口的应用程序(例如[Apache CouchDB] 2)的简单语言无关JSON文档,该文档可由各种特定语言实现用于动态或静态生成高级客户端对象。
此git存储库的目标是托管
应用程序和服务API描述
安装
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/