@@ -87,11 +87,9 @@ class Client
8787 const AUTH_HTTP_TOKEN = 'http_token ' ;
8888
8989 /**
90- * @var array
90+ * @var string
9191 */
92- private $ options = array (
93- 'api_version ' => 'v3 ' ,
94- );
92+ private $ apiVersion = 'v3 ' ;
9593
9694 /**
9795 * The object that sends HTTP messages
@@ -158,6 +156,8 @@ public function __construct(HttpClient $httpClient = null)
158156 $ this ->addPlugin (new Plugin \HeaderDefaultsPlugin (array (
159157 'User-Agent ' => 'php-github-api (http://github.com/KnpLabs/php-github-api) ' ,
160158 )));
159+ // Add standard headers.
160+ $ this ->clearHeaders ();
161161 }
162162
163163 /**
@@ -305,7 +305,7 @@ public function setEnterpriseUrl($enterpriseUrl)
305305 $ this ->removePlugin (PathPrepend::class);
306306
307307 $ this ->addPlugin (new Plugin \AddHostPlugin (UriFactoryDiscovery::find ()->createUri ($ enterpriseUrl )));
308- $ this ->addPlugin (new PathPrepend (sprintf ('/api/%s/ ' , $ this ->getOption ( ' api_version ' ))));
308+ $ this ->addPlugin (new PathPrepend (sprintf ('/api/%s/ ' , $ this ->getApiVersion ( ))));
309309 }
310310
311311 /**
@@ -361,13 +361,36 @@ public function setHttpClient(HttpClient $httpClient)
361361 $ this ->httpClient = $ httpClient ;
362362 }
363363
364+ /**
365+ * @return string
366+ */
367+ public function getApiVersion ()
368+ {
369+ return $ this ->apiVersion ;
370+ }
371+
372+ /**
373+ * @param string $apiVersion
374+ *
375+ * @return Client
376+ */
377+ public function setApiVersion ($ apiVersion )
378+ {
379+ $ this ->apiVersion = $ apiVersion ;
380+ $ this ->addHeaders ([
381+ 'Accept ' => sprintf ('application/vnd.github.%s+json ' , $ apiVersion ),
382+ ]);
383+
384+ return $ this ;
385+ }
386+
364387 /**
365388 * Clears used headers.
366389 */
367390 public function clearHeaders ()
368391 {
369392 $ this ->headers = array (
370- 'Accept ' => sprintf ('application/vnd.github.%s+json ' , $ this ->options [ ' api_version ' ] ),
393+ 'Accept ' => sprintf ('application/vnd.github.%s+json ' , $ this ->getApiVersion () ),
371394 );
372395
373396 $ this ->removePlugin (Plugin \HeaderAppendPlugin::class);
@@ -403,38 +426,6 @@ public function removeCache()
403426 $ this ->removePlugin (Plugin \CachePlugin::class);
404427 }
405428
406- /**
407- * @param string $name
408- *
409- * @throws InvalidArgumentException
410- *
411- * @return mixed
412- */
413- public function getOption ($ name )
414- {
415- if (!array_key_exists ($ name , $ this ->options )) {
416- throw new InvalidArgumentException (sprintf ('Undefined option called: "%s" ' , $ name ));
417- }
418-
419- return $ this ->options [$ name ];
420- }
421-
422- /**
423- * @param string $name
424- * @param mixed $value
425- *
426- * @throws InvalidArgumentException
427- * @throws InvalidArgumentException
428- */
429- public function setOption ($ name , $ value )
430- {
431- if (!array_key_exists ($ name , $ this ->options )) {
432- throw new InvalidArgumentException (sprintf ('Undefined option called: "%s" ' , $ name ));
433- }
434-
435- $ this ->options [$ name ] = $ value ;
436- }
437-
438429 /**
439430 * @param string $name
440431 *
0 commit comments