This is a PHP wrapper for the FreeToGame API
You can install this package via composer using:
composer require nellyt/free-to-game-api-wrapper
require ('vendor/autoload.php');
$client = new \FreeToGame\Client();
$response = $client->fetchList();
$response = $client->fetchDetails($gameId);
$response->getResponse()->getStatusCode();
$response->getData();
Filters are used when fetching lists of games. There are three types of filter:
- Platform
- Category
- Tags
Filters are added to a FilterCollection instance, which is passed to the client.
$platformFilter = new \FreeToGame\Filters\PlatformFilter(new \FreeToGame\Filters\Platforms\Browser());
$filterCollection = new \FreeToGame\Filters\FilterCollection();
$filterCollection->setPlatformFilter($platformFilter);
$response = $client->fetchList($filterCollection);
Lists of games can be filtered by category or tags, not both. Tag filters require an array of SearchTerms, while category filters accept only one.
$categoryFilter = new \FreeToGame\Filters\CategoryFilter(new \FreeToGame\Filters\SearchTerms\Shooter());
$filterCollection = new \FreeToGame\Filters\FilterCollection();
$filterCollection->setCategoryFilter($categoryFilter);
$response = $client->fetchList($filterCollection);
$searchTerms = [
new \FreeToGame\Filters\SearchTerms\Shooter(),
new \FreeToGame\Filters\SearchTerms\Strategy(),
new \FreeToGame\Filters\SearchTerms\Racing(),
];
$tagFilter = new \FreeToGame\Filters\TagFilter($searchTerms);
$filterCollection = new \FreeToGame\Filters\FilterCollection();
$filterCollection->setTagFilter($tagFilter);
$response = $client->fetchList($filterCollection);
There are two helper functions available to assist build the array of SearchTerms.
$shooter = \FreeToGame\Helpers\SearchTermFactory::getSearchTerm('shooter');
$searchTerms = \FreeToGame\Helpers\SearchTermFactory::getSearchTerms(['shooter', 'zombie', 'permadeath']);
Lists of games can be sorted.
$sort = new \FreeToGame\Sort\AlphabeticalSort();
$response = $client->fetchList(null, $sort);
$platformFilter = new \FreeToGame\Filters\PlatformFilter(new \FreeToGame\Filters\Platforms\Browser());
$searchTerms = [
new \FreeToGame\Filters\SearchTerms\Shooter(),
new \FreeToGame\Filters\SearchTerms\Strategy(),
new \FreeToGame\Filters\SearchTerms\Racing(),
];
$tagFilter = new \FreeToGame\Filters\TagFilter($searchTerms);
$filterCollection = new \FreeToGame\Filters\FilterCollection();
$filterCollection->setPlatformFilter($platformFilter);
$filterCollection->setTagFilter($tagFilter);
$sort = new \FreeToGame\Sort\AlphabeticalSort();
$response = $client->fetchList($filterCollection, $sort);
The list of sorting options is:
- AlphabeticalSort
- PopularitySort
- ReleaseDateSort
- RelevanceSort
- Sort
The list of search terms is:
- Action
- ActionRolePlayingGame
- Anime
- BattleRoyale
- Card
- Fantasy
- Fighting
- FirstPerson
- Flight
- Horror
- LowSpecifications
- MartialArts
- MassivelyMultiplayerOnline
- MassivelyMultiplayerOnlineFirstPersonShooter
- MassivelyMultiplayerOnlineRealTimeStrategy
- MassivelyMultiplayerOnlineRolePlayingGame
- MassivelyMultiplayerOnlineThirdPersonShooter
- Military
- MultiplayerOnlineBattleArena
- OpenWorld
- Permadeath
- Pixel
- PlayerVersusEnvironment
- PlayerVersusPlayer
- Racing
- Sailing
- Sandbox
- ScienceFiction
- SearchTerm
- Shooter
- SideScroller
- Social
- Space
- Sports
- Strategy
- Superhero
- Survival
- Tank
- ThirdPerson
- ThreeDimensions
- TopDown
- TowerDefense
- TurnBased
- TwoDimensions
- Voxel
- Zombie