jacobknox / pokemon-tcg-sdk-php
This is an update to the Pokémon TCG SDK PHP implementation. It is a wrapper around the Pokémon TCG API of pokemontcg.io.
Requires
- php: ^5.5 || ^5.6 || ^7.0 || ^7.3 || ^7.4 || ^8.0
- ext-json: *
- doctrine/inflector: ^1.1 || ^2.0
- guzzlehttp/guzzle: ^6.2 || ^7.2
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.2.1
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2025-04-23 22:06:41 UTC
README
This is the Pokémon TCG SDK PHP implementation. It is a wrapper around the Pokémon TCG API of pokemontcg.io.
Installation
composer require jacobknox/pokemon-tcg-sdk-php
Usage
Set ApiKey and options
See the Guzzle 7 documentation for available options.
Pokemon::Options(['verify' => true]);
Pokemon::ApiKey('<YOUR_API_KEY_HERE>');
Find a Card by id
$card = Pokemon::Card()->find('xy1-1');
Filter Cards via query parameters
$cards = Pokemon::Card()->where(['set.name' => 'generations'])->where(['supertype' => 'pokemon'])->all();
$cards = Pokemon::Card()->where([
'set.name' => 'roaring skies',
'subtypes' => 'ex'
])->all();
Filter Cards via more complicated query parameters
$cards = Pokemon::Card()->where(['types' => ['OR', 'fire', 'water'])->where(['supertype' => 'pokemon'])->all();
$cards = Pokemon::Card()->where([
'types' => ['OR', 'fire', 'water'],
'subtypes' => 'ex'
])->all();
Order Cards
There are four methods to order cards. You may use whichever one suits you. Please note that they will sorted first by the first array/list item then by the second and so on until the end of the array/list.
Specify attribute and whether to sort ascending or descending
$cards = Pokemon::Card()->orderBy(['name' => 1, 'number' => -1])->all();
Permitted values to represent ascending: 1, 'ascending', ''. Permitted values to represent descending: -1, 'descending', '-'.
Specify attributes with order indicator ('-' indicates descending, lack thereof indicates ascending)
$cards = Pokemon::Card()->orderBy(['name', '-number'])->all();
Specify comma-separated list of attributes
$cards = Pokemon::Card()->orderBy(['name,-number'])->all();
Get all Cards
$cards = Pokemon::Card()->all();
Paginate Card queries
$cards = Pokemon::Card()->where([
'set.legalities.standard' => 'legal'
])->page(8)->pageSize(100)->all();
Get Card pagination information
$pagination = Pokemon::Card()->where([
'set.legalities.standard' => 'legal'
])->pagination();
Find a Set by set code
$set = Pokemon::Set()->find('base1');
Filter Sets via query parameters
$set = Pokemon::Set()->where(['legalities.standard' => 'legal'])->all();
Paginate Set queries
$set = Pokemon::Set()->page(2)->pageSize(10)->all();
Get Set pagination information
$pagination = Pokemon::Set()->pagination();
Get all Sets
$sets = Pokemon::Set()->all();
Get all Types
$types = Pokemon::Type()->all();
Get all Subtypes
$subtypes = Pokemon::Subtype()->all();
Get all Supertypes
$supertypes = Pokemon::Supertype()->all();
Get all Rarities
$supertypes = Pokemon::Rarity()->all();