nellyt / free-to-game-api-wrapper
Wrapper for API https://www.freetogame.com
v1.0.2
2021-03-08 21:21 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- lukasoppermann/http-status: ^3.1
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.0.0
- codeception/module-phpbrowser: ^1.0.0
- hoa/console: ^3.17
This package is auto-updated.
Last update: 2025-03-09 06:12:08 UTC
README
This is a PHP wrapper for the FreeToGame API
Basic installation
You can install this package via composer using:
composer require nellyt/free-to-game-api-wrapper
Usage
Basic
require ('vendor/autoload.php'); $client = new \FreeToGame\Client(); $response = $client->fetchList(); $response = $client->fetchDetails($gameId); $response->getResponse()->getStatusCode(); $response->getData();
Filters
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.
Platform filters
$platformFilter = new \FreeToGame\Filters\PlatformFilter(new \FreeToGame\Filters\Platforms\Browser()); $filterCollection = new \FreeToGame\Filters\FilterCollection(); $filterCollection->setPlatformFilter($platformFilter); $response = $client->fetchList($filterCollection);
Category / Tag filters
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.
Category
$categoryFilter = new \FreeToGame\Filters\CategoryFilter(new \FreeToGame\Filters\SearchTerms\Shooter()); $filterCollection = new \FreeToGame\Filters\FilterCollection(); $filterCollection->setCategoryFilter($categoryFilter); $response = $client->fetchList($filterCollection);
Tag
$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);
Tag helper
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']);
Sort By
Lists of games can be sorted.
$sort = new \FreeToGame\Sort\AlphabeticalSort(); $response = $client->fetchList(null, $sort);
Example: multiple filters and sorted
$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);
Sort Options
The list of sorting options is:
- AlphabeticalSort
- PopularitySort
- ReleaseDateSort
- RelevanceSort
- Sort
Search Terms
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