PHP code example of emanuilnikolov / igdb-api-bundle
1. Go to this page and download the library: Download emanuilnikolov/igdb-api-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
emanuilnikolov / igdb-api-bundle example snippets
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = [
// ...
new EN\IgdbApiBundle\ENIgdbApiBundle(),
];
// ...
}
}
// src/Controller/IgdbController.php
namespace App\Controller;
// ...
use EN\IgdbApiBundle\Igdb\IgdbWrapperInterface;
use EN\IgdbApiBundle\Igdb\Parameter\ParameterBuilderInterface;
class IgdbController extends AbstractController
{
/**
* @Route("/index", name="index")
*/
public function index(IgdbWrapperInterface $wrapper, ParameterBuilderInterface $builder)
{
$builder->setId(1);
$games = $wrapper->games($builder);
// ...
}
}
// src/Controller/IgdbController.php
// ...
/**
* @Route("/index", name="index")
*/
public function index(IgdbWrapperInterface $wrapper, ParameterBuilderInterface $builder)
{
// Fetching games from the API
$builder
->setLimit(1)
->setFields("id,name");
$games = $wrapper->games($builder);
// Running var_dump on $games will output:
// array (size=1)
// 0 =>
// array (size=2)
// 'id' => int 77207
// 'name' => string 'Dune: The Battle for Arrakis' (length=28)
// After the execution of any endpoint method, the response of the API is recorded in the wrapper
// and can be accessed with the getResponse() method.
$response = $wrapper->getResponse();
// The response implements the PSR-7 interface.
class_implements($response); // This will return "Psr\Http\Message\ResponseInterface".
//...
}
// src/Controller/IgdbController.php
// ...
/**
* @Route("/index", name="index")
*/
public function index(IgdbWrapperInterface $wrapper, ParameterBuilderInterface $builder)
{
// This will limit the result set to 10 games and enable the scroll functionality.
$builder->setLimit(10)->setScroll(1);
// The API will return 10 games and the scroll headers (X-Next-Page & X-Count).
$gamesSetOne = $wrapper->games($builder);
// The X-Next-Page header is accessed with the getScrollNextPage() method.
// The most recent response is automatically used and can be omitted.
$scrollNextPageUrl = $wrapper->getScrollNextPage();
// The most recent received response is accessed with the getResponse() method.
$response = $wrapper->getResponse();
// and can be manually passed in.
// The X-Count header is accessed with the getScrollCount() method.
$scrollCount = $wrapper->getScrollCount($response);
// scroll() will use the provided URL from getScrollNextPage() to get the next result set.
$gamesSetTwo = $wrapper->scroll($scrollNextPageUrl);
// The API will always send the same URL so you can repeatedly query the same URL to get the next result set.
$gamesSetThree = $wrapper->scroll($scrollNextPageUrl);
// ...
}
// src/Controller/IgdbController.php
namespace App\Controller;
// ...
use EN\IgdbApiBundle\Igdb\IgdbWrapperInterface;
use EN\IgdbApiBundle\Igdb\Parameter\ParameterBuilderInterface;
use EN\IgdbApiBundle\Igdb\ValidEndpoints;
class IgdbController extends AbstractController
{
/**
* @Route("/index", name="index")
*/
public function index(IgdbWrapperInterface $wrapper, ParameterBuilderInterface $builder)
{
// The second argument is the endpoint that will be called.
// All of the API's endpoints are available as constants in the ValidEndpoints class.
$games = $wrapper->search("Mass Effect", ValidEndpoints::FRANCHISES, $builder);
// This will produce the same as the former.
$builder->setSearch("Mass Effect");
$games = $wrapper->franchises($builder);
// ...
}
}
// Accepts the endpoint's name and an instance of the ParameterBuilder as its arguments.
$games = $wrapper->fetchData(ValidEndpoints::GAMES, $builder);
$response = $wrapper->sendRequest("https://api-endpoint.igdb.com/non-existant"); // This will produce a 404 status code.
// Because the $response implements the PSR-7 standart and Guzzle is prevented from throwing an exception
// you have more flexibility for error handling.
$statusCode = $response->getStatusCode(); // Get the status code.
$reasonPhrase = $response->getReasonPhrase(); // Get the reason phrase.
$headers = $response->getHeaders(); // Get the response's headers.