Pimple GitHub API service provider
Provides the KnpLabs GitHub API wrapper to Pimple (Silex, Cilex)
applications., (*1)
Installation
-
Composer require this package:, (*2)
composer require "rmasters/github-service-provider:~1.0"
-
Register in your application:, (*3)
$app = new Silex\Application;
$app = new Pimple\Container;
$app->register(new Rossible\Provider\GitHubProvider\GitHubServiceProvider);
This package requires Pimple 3.x and uses the ServiceProviderInterface and
Container interfaces/type-hints that it provides. Silex 2.0 supports this, and
Cilex should do soon., (*4)
Configuration
You can modify the GitHub\Client
construction by extending these services:, (*5)
Service |
Description |
Default |
github.client |
The Github\Client instance |
Github\Client |
github.httpclient |
The HttpClient used for making requests |
CachedHttpClient |
github.httpclient.caching |
When true, uses a CachedHttpClient |
true |
github.httpclient.options |
Options array passed to HttpClient |
[] |
github.httpclient.cache |
The Response cache to use |
FilesystemCache |
github.httpclient.cache.path |
When using FilesystemCache, where to store cached responses |
sys_get_temp_dir() |
To change these, extend or replace the service, for
example:, (*6)
// Toggle the caching variable
$app['github.httpclient.caching'] = false;
// Use a subdirectory in the temp directory
$app->extend('github.httpclient.cache.path', function($path, $app) {
$path .= '/github-responses';
mkdir($path, 776);
return $path;
});
// Set a custom Accept header to access pre-release features
$app->extend('github.httpclient', function (HttpClientInterface $httpclient, $app) {
$httpclient->setHeaders(['Accept' => 'application/vnd.github.she-hulk-preview+json']);
return $httpclient;
});
License
Released under the MIT License., (*7)