CentOS release 5.10 (Final)
PHP 5.3.3
composer 3251f9f1aa997479fff78905841e22beacfbe37b
php-github-api
guzzle 3.9.1
GitHub API v3
PHP 5.3.3
composer 3251f9f1aa997479fff78905841e22beacfbe37b
php-github-api
guzzle 3.9.1
GitHub API v3
■インストール
・phpインストール
・composerインストール
yum -y install php php-devel php-pear
php -m | grep curl
でcurlモジュールがインストールされていることを確認します
php -m | grep curl
でcurlモジュールがインストールされていることを確認します
・composerインストール
composerのインストール
emacs composer.json
composer install
ls -ltr vendor
emacs composer.json
{
"require": {
"knplabs/github-api": "*"
},
"minimum-stability": "dev"
}
composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing symfony/event-dispatcher (dev-master 7a4f4b4)
Cloning 7a4f4b42886f8c2e35acb1071f157a0b8eb1bd39
- Installing guzzle/guzzle (v3.9.1)
Downloading: 100%
- Installing knplabs/github-api (dev-master a462c35)
Cloning a462c357aa0503bd7fc94da889517de98c2c4ec0
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/event-dispatcher suggests installing symfony/http-kernel ()
knplabs/github-api suggests installing knplabs/gaufrette (Needed for optional Gaufrette cache)
Writing lock file
Generating autoload files
ls -ltr vendor
合計 20 drwxr-xr-x 3 root root 4096 6月 27 09:34 symfony drwxr-xr-x 3 root root 4096 6月 27 09:34 guzzle drwxr-xr-x 3 root root 4096 6月 27 09:34 knplabs drwxr-xr-x 2 root root 4096 6月 27 09:34 composer -rw-r--r-- 1 root root 183 6月 27 09:34 autoload.php
■サンプルソースコード(指定したユーザのリポジトリ情報取得)
指定したユーザのリポジトリ情報一覧を取得します
emacs TestGithub.php
api('user') は固定です
コールするAPIの種類を指定します(他にも「issue」「pr」など指定できます)
repositories('kakakikikeke') にリポジトリを取得するユーザ名を指定します
サンプルではリポジトリの名前(name)だけを表示しています
連想配列として格納されているのでkeyを直接指定して取得してもOKです
emacs TestGithub.php
api('user')->repositories('kakakikikeke');
for ($i = 0; $i < count($repositories); $i++) {
$repos = $repositories[$i];
foreach ($repos as $key => $value) {
if ($key === "name") {
echo $key . " => " . $value . "\n";
}
}
}
?>
api('user') は固定です
コールするAPIの種類を指定します(他にも「issue」「pr」など指定できます)
repositories('kakakikikeke') にリポジトリを取得するユーザ名を指定します
サンプルではリポジトリの名前(name)だけを表示しています
連想配列として格納されているのでkeyを直接指定して取得してもOKです
■サンプルソースコード(README.mdの取得)
指定したユーザのリポジトリからREADMEの情報を取得します
readmeメソッドの引数にユーザ名とリポジトリ名を指定します
contentはbase64エンコードされて取得されるのでクライアント上でデコードしてあげます
api('repo')->readme('kakakikikeke', 'java-signature');
echo base64_decode($readme['content']);
?>
readmeメソッドの引数にユーザ名とリポジトリ名を指定します
contentはbase64エンコードされて取得されるのでクライアント上でデコードしてあげます
以上です
ソースコードも非常に読みやすく
endor/knplabs/github-api/lib/Github/Client.php
で呼び出すAPIを振り分けており、呼び出すAPIごとに
endor/knplabs/github-api/lib/Github/Api
配下に専用のclassとメソッドが定義されています
ドキュメントも用意されていますがソースが読みやすいので直接ソースを見てもいいかと思います
今回は紹介したPHPライブラリの他にもいろいろなサードパーティ製のライブラリがあるようなので興味のある方は他のライブラリも試してみるといいかもしれません
■参考サイト
0 件のコメント:
コメントを投稿