/php-github-api

A simple PHP GitHub API client, Object Oriented, tested and documented. For 5.3+.

Primary LanguagePHPMIT LicenseMIT

PHP GitHub API

Build Status

A simple Object Oriented wrapper for GitHub API, written with PHP5.

Uses GitHub API v3. The object API is very similar to the RESTful API.

Features

  • Follows PSR-0 conventions and coding standard: autoload friendly
  • Light and fast thanks to lazy loading of API classes
  • Extensively tested and documented

Requirements

  • PHP >= 5.3.2 with cURL extension,
  • Guzzle library,
  • (optional) PHPUnit to run tests.

Autoload

The new version of php-github-api using Composer. The first step to use php-github-api is to download composer:

$ curl -s http://getcomposer.org/installer | php

Then we have to install our dependencies using:

$ php composer.phar install

Now we can use autoloader from Composer by:

{
    "require": {
        "knplabs/github-api": "~1.2"
    }
}

php-github-api follows the PSR-0 convention names for its classes, which means you can easily integrate php-github-api classes loading in your own autoloader.

Using Laravel?

Laravel GitHub by Graham Campbell might interest you.

{
    "require": {
        "graham-campbell/github": "0.1.*"
    }
}

Basic usage of php-github-api client

<?php

// This file is generated by Composer
require_once 'vendor/autoload.php';

$client = new \Github\Client();
$repositories = $client->api('user')->repositories('ornicar');

From $client object, you can access to all GitHub.

Cache usage

<?php

// This file is generated by Composer
require_once 'vendor/autoload.php';

$client = new \Github\Client(
    new \Github\HttpClient\CachedHttpClient(array('cache_dir' => '/tmp/github-api-cache'))
);

// Or select directly which cache you want to use
$client = new \Github\HttpClient\CachedHttpClient();
$client->setCache(
    // Built in one, or any cache implementing this interface:
    // Github\HttpClient\Cache\CacheInterface
    new \Github\HttpClient\Cache\FilesystemCache('/tmp/github-api-cache')
);

$client = new \Github\Client($client);

Using cache, the client will get cached responses if resources haven't changed since last time, without reaching the X-Rate-Limit imposed by github.

Documentation

See the doc directory for more detailed documentation.

License

php-github-api is licensed under the MIT License - see the LICENSE file for details

Credits

Sponsored by

KnpLabs Team

Contributors

Thanks to GitHub for the high quality API and documentation.