You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
3.1 KiB
82 lines
3.1 KiB
1 year ago
|
# php-giantbomb
|
||
|
|
||
|
[![Packagist](https://img.shields.io/packagist/v/dborsatto/php-giantbomb.svg)](https://packagist.org/packages/dborsatto/php-giantbomb)
|
||
|
[![Packagist](https://img.shields.io/packagist/dt/dborsatto/php-giantbomb.svg)](https://packagist.org/packages/dborsatto/php-giantbomb)
|
||
|
[![Travis](https://img.shields.io/travis/dborsatto/php-giantbomb.svg)](https://travis-ci.org/dborsatto/php-giantbomb)
|
||
|
[![Packagist](https://img.shields.io/packagist/l/dborsatto/php-giantbomb.svg)](https://packagist.org/packages/dborsatto/php-giantbomb)
|
||
|
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/e630e521-fd39-4ac2-b994-5149d6ffaca4/mini.png)](https://insight.sensiolabs.com/projects/e630e521-fd39-4ac2-b994-5149d6ffaca4)
|
||
|
[![Code Climate](https://codeclimate.com/github/dborsatto/php-giantbomb/badges/gpa.svg)](https://codeclimate.com/github/dborsatto/php-giantbomb)
|
||
|
[![Test Coverage](https://codeclimate.com/github/dborsatto/php-giantbomb/badges/coverage.svg)](https://codeclimate.com/github/dborsatto/php-giantbomb/coverage)
|
||
|
|
||
|
This is a library that acts as a wrapper for GiantBomb's API.
|
||
|
|
||
|
## Install
|
||
|
|
||
|
Via Composer
|
||
|
|
||
|
``` bash
|
||
|
$ composer require dborsatto/php-giantbomb
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
``` php
|
||
|
|
||
|
$apiKey = 'YouApiKey';
|
||
|
|
||
|
// Create a Config object and pass it to the Client
|
||
|
$config = new DBorsatto\GiantBomb\Config($apiKey);
|
||
|
$client = new DBorsatto\GiantBomb\Client($config);
|
||
|
|
||
|
// OPTIONAL: use a cache driver
|
||
|
// Anything that extends Doctrine\Common\Cache\CacheProvider will work
|
||
|
$memcached = new Memcached();
|
||
|
$memcached->addServer('127.0.0.1', 11211);
|
||
|
$cache = new Doctrine\Common\Cache\MemcachedCache();
|
||
|
$cache->setMemcached($memcached);
|
||
|
$client->setCacheProvider($cache);
|
||
|
|
||
|
// Alternatively you can pass a CacheProvider instance as the second parameter of the Client's constructor
|
||
|
// $client = new DBorsatto\GiantBomb\Client($config, $cache);
|
||
|
|
||
|
// If no CacheProvider is configured, Doctrine\Common\Cache\VoidCache will be used
|
||
|
// You can still flush the current cache by invoking
|
||
|
// $client->getCacheProvider()->flush();
|
||
|
|
||
|
// Standard query creation process
|
||
|
$games = $client->getRepository('Game')->query()
|
||
|
->addFilterBy('name', 'Uncharted')
|
||
|
->sortBy('original_release_date', 'asc')
|
||
|
->setFieldList(array('id', 'name', 'deck'))
|
||
|
->setParameter('limit', 100)
|
||
|
->setParameter('offset', 0)
|
||
|
->find();
|
||
|
echo count($games)." Game objects loaded\n";
|
||
|
|
||
|
// These options are all equivalent
|
||
|
$game = $client->getRepository('Game')
|
||
|
->query()
|
||
|
->setResourceId('3030-22420')
|
||
|
->findOne();
|
||
|
$game = $client->query('Game')
|
||
|
->setResourceId('3030-22420')
|
||
|
->findOne();
|
||
|
$game = $client->findOne('Game', '3030-22420');
|
||
|
echo $game->get('name')." object loaded\n";
|
||
|
|
||
|
// These options are equivalent
|
||
|
$results = $client->getRepository('Search')
|
||
|
->query()
|
||
|
->setParameter('query', 'Uncharted')
|
||
|
->setParameter('resources', 'game,franchise')
|
||
|
->find();
|
||
|
$results = $client->search('Uncharted', 'game,franchise');
|
||
|
echo count($results)." Search objects loaded\n";
|
||
|
```
|
||
|
|
||
|
For the full option list visit [GiantBomb's API doc](http://www.giantbomb.com/api/documentation).
|
||
|
|
||
|
## License
|
||
|
|
||
|
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
|