Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/KnpLabs/php-github-api
A simple PHP GitHub API client, Object Oriented, tested and documented.
https://github.com/KnpLabs/php-github-api
github-api hacktoberfest php
Last synced: about 1 month ago
JSON representation
A simple PHP GitHub API client, Object Oriented, tested and documented.
- Host: GitHub
- URL: https://github.com/KnpLabs/php-github-api
- Owner: KnpLabs
- License: mit
- Created: 2012-04-06T09:44:28.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-04-02T07:34:02.000Z (8 months ago)
- Last Synced: 2024-05-17T01:42:26.119Z (7 months ago)
- Topics: github-api, hacktoberfest, php
- Language: PHP
- Homepage:
- Size: 2.1 MB
- Stars: 2,116
- Watchers: 74
- Forks: 595
- Open Issues: 44
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG-3.X.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-php - Github - A library to interface with the Github API. (Configuration / Third Party APIs)
- awesome-php-cn - Github - 一个图书馆和Github API接口. (配置 Configuration / 第三方api Third Party APIs)
- awesome-projects - Github - A library to interface with the Github API. (Configuration / Third Party APIs)
- awesome-php - Github - A library to interface with the Github API. (Configuration / Third Party APIs)
README
# PHP GitHub API
![Build Status](https://github.com/KnpLabs/php-github-api/actions/workflows/ci.yml/badge.svg)
[![StyleCI](https://styleci.io/repos/3948501/shield?style=flat)](https://styleci.io/repos/3948501)
[![Latest Stable Version](https://poser.pugx.org/knplabs/github-api/v/stable)](https://packagist.org/packages/knplabs/github-api)
[![Total Downloads](https://poser.pugx.org/knplabs/github-api/downloads)](https://packagist.org/packages/knplabs/github-api)
[![Monthly Downloads](https://poser.pugx.org/knplabs/github-api/d/monthly)](https://packagist.org/packages/knplabs/github-api)
[![Daily Downloads](https://poser.pugx.org/knplabs/github-api/d/daily)](https://packagist.org/packages/knplabs/github-api)A simple Object Oriented wrapper for GitHub API, written with PHP.
Uses [GitHub API v3](http://developer.github.com/v3/) & supports [GitHub API v4](http://developer.github.com/v4). The object API (v3) is very similar to the RESTful API.
## Features
* Light and fast thanks to lazy loading of API classes
* Extensively tested and documented## Requirements
* PHP >= 7.2
* A [PSR-17 implementation](https://packagist.org/providers/psr/http-factory-implementation)
* A [PSR-18 implementation](https://packagist.org/providers/psr/http-client-implementation)## Quick install
Via [Composer](https://getcomposer.org).
This command will get you up and running quickly with a Guzzle HTTP client.
```bash
composer require knplabs/github-api:^3.0 guzzlehttp/guzzle:^7.0.1 http-interop/http-factory-guzzle:^1.0
```## Advanced install
We are decoupled from any HTTP messaging client with help by [HTTPlug](https://httplug.io).
### Using a different http client
```bash
composer require knplabs/github-api:^3.0 symfony/http-client nyholm/psr7
```To set up the Github client with this HTTP client
```php
use Github\Client;
use Symfony\Component\HttpClient\HttplugClient;$client = Client::createWithHttpClient(new HttplugClient());
```Read more about [using different clients in our docs](doc/customize.md).
## Framework integrations
### Laravel
To integrate this library in laravel [Graham Campbell](https://github.com/GrahamCampbell) created [graham-campbell/github](https://github.com/GrahamCampbell/Laravel-GitHub). See the [installation instructions](https://github.com/GrahamCampbell/Laravel-GitHub#installation) to get started in laravel.
## Basic usage of `php-github-api` client
```php
api('user')->repositories('ornicar');
```From `$client` object, you have access to all available GitHub api endpoints.
## Cache usage
This example uses the PSR6 cache pool [redis-adapter](https://github.com/php-cache/redis-adapter). See http://www.php-cache.com/ for alternatives.
```php
connect('127.0.0.1', 6379);
// Create a PSR6 cache pool
$pool = new RedisCachePool($client);$client = new \Github\Client();
$client->addCache($pool);// Do some request
// Stop using cache
$client->removeCache();
```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](http://developer.github.com/v3/#rate-limiting).## Documentation
See the [`doc` directory](doc/) for more detailed documentation.
## License
`php-github-api` is licensed under the MIT License - see the LICENSE file for details
## Maintainers
Please read [this post](https://knplabs.com/en/blog/news-for-our-foss-projects-maintenance) first.
This library is maintained by the following people (alphabetically sorted) :
- [@acrobat](https://github.com/acrobat)
- [@Nyholm](https://github.com/Nyholm)## Contributors
- Thanks to [Thibault Duplessis aka. ornicar](https://github.com/ornicar) for his first version of this library.
- Thanks to [Joseph Bielawski aka. stloyd](https://github.com/stloyd) for his contributions and support.
- Thanks to [noloh](https://github.com/noloh) for his contribution on the Object API.
- Thanks to [bshaffer](https://github.com/bshaffer) for his contribution on the Repo API.
- Thanks to [Rolf van de Krol](https://github.com/rolfvandekrol) for his countless contributions.
- Thanks to [Nicolas Pastorino](https://github.com/jeanvoye) for his contribution on the Pull Request API.
- Thanks to [Edoardo Rivello](https://github.com/erivello) for his contribution on the Gists API.
- Thanks to [Miguel Piedrafita](https://github.com/m1guelpf) for his contribution to the v4 & Apps API.
- Thanks to [Emre DEGER](https://github.com/lexor) for his contribution to the Actions API.Thanks to GitHub for the high quality API and documentation.