Das PHP SDK
Ein vollständig typisiertes PHP SDK für den Zugriff auf Pokémon Trading Card Game Daten über die TCGdex API.
// Schnelles Beispieluse TCGdex\TCGdex;
// SDK initialisieren$tcgdex = new TCGdex("en");
// Eine Karte anhand ihrer ID abrufen$card = $tcgdex->card->get('swsh3-136');
echo "Gefunden: {$card->name} ({$card->localId}/{$card->set->cardCount->total})";
Installation
Abschnitt betitelt „Installation“-
Installieren Sie das SDK mit Composer
Terminal-Fenster composer require tcgdex/sdk -
Das SDK benötigt PSR-16 (SimpleCache), PSR-17 (HTTP Factories) und PSR-18 (HTTP Client) Implementierungen. Wenn Sie diese nicht installiert haben, können Sie sie mit folgendem Befehl hinzufügen:
Terminal-Fenster composer require symfony/cache nyholm/psr7 kriswallsmith/buzzTerminal-Fenster composer require nyholm/psr7
Grundlegende Verwendung
Abschnitt betitelt „Grundlegende Verwendung“// Paket importierenuse TCGdex\TCGdex;
// SDK mit der Sprache initialisieren (standardmäßig "en" wenn nicht angegeben)$tcgdex = new TCGdex("en");
// Karte anhand ihrer ID abrufen$card = $tcgdex->card->get('swsh3-136');
// Auf Kartendaten zugreifenecho $card->name; // "Furret"echo $card->illustrator; // "Mitsuhiro Arita"echo $card->set->name; // "Darkness Ablaze"
// Kartentypen, Angriffe usw. abrufen$types = $card->types; // ["Colorless"]$attacks = $card->attacks; // Array von Attack-Objekten
use TCGdex\TCGdex;use Symfony\Component\HttpClient\Psr18Client;use Nyholm\Psr7\Factory\Psr17Factory;
// PSR-17 Factories erstellen$psr17Factory = new Psr17Factory();
// Factories und Client einrichtenTCGdex::$requestFactory = $psr17Factory;TCGdex::$responseFactory = $psr17Factory;TCGdex::$client = new Psr18Client();
// SDK mit der Sprache initialisieren$tcgdex = new TCGdex("en");
// Karte anhand ihrer ID abrufen$card = $tcgdex->card->get('swsh3-136');
Funktionen
Abschnitt betitelt „Funktionen“- Typsicherheit: Alle Daten werden durch stark typisierte Modelle repräsentiert
- Mehrere Endpunkte: Zugriff auf Karten, Sets, Serien und verschiedene Kartenattribute
- Filterung & Sortierung: API-Abfrage mit Filtern, Sortierung und Paginierung
- Mehrsprachenunterstützung: Daten in verschiedenen Sprachen abrufen
- Vollständige API-Abdeckung: Komplette Abdeckung aller TCGdex API-Endpunkte
Endpunkte
Abschnitt betitelt „Endpunkte“Das SDK bietet spezialisierte Endpunkte für verschiedene Datentypen:
$tcgdex = new TCGdex();
// Hauptendpunkte für Kerndaten$tcgdex->card // Karteninformationen$tcgdex->set // Kartensets (z.B. "Darkness Ablaze")$tcgdex->serie // Kartenserien (z.B. "Sword & Shield")
// Kartenattribut-Endpunkte$tcgdex->rarity // Kartenseltenheiten$tcgdex->hp // HP-Werte$tcgdex->illustrator // Kartenillustratoren$tcgdex->category // Kartenkategorien
// Spielmechanik-Endpunkte$tcgdex->type // Pokémon-Typen$tcgdex->energyType // Energietypen$tcgdex->retreat // Rückzugskosten$tcgdex->stage // Entwicklungsstufen
// Kartendetail-Endpunkte$tcgdex->variant // Kartenvarianten (Holo, Reverse, usw.)$tcgdex->suffix // Kartensuffixe$tcgdex->regulationMark // Regulierungsmarken$tcgdex->dexId // Pokédex-IDs$tcgdex->trainerType // Trainer-Kartentypen
Daten abrufen
Abschnitt betitelt „Daten abrufen“Eine einzelne Ressource abrufen
Abschnitt betitelt „Eine einzelne Ressource abrufen“// Karte anhand ihrer ID abrufen$card = $tcgdex->card->get('swsh3-136');
// Set anhand seiner ID abrufen$set = $tcgdex->set->get('swsh3');
// Karte anhand ihres Set-Codes und ihrer lokalen ID abrufen$card = $tcgdex->set->getCard('swsh3', '136');
// Serie anhand ihrer ID abrufen$serie = $tcgdex->serie->get('swsh');
Ressourcen auflisten
Abschnitt betitelt „Ressourcen auflisten“// Alle Karten abrufen$cards = $tcgdex->card->list();
// Alle Sets abrufen$sets = $tcgdex->set->list();
// Alle Serien abrufen$series = $tcgdex->serie->list();
// Alle Pokémon-Typen abrufen$types = $tcgdex->type->list();
Filterung mit Query Builder
Abschnitt betitelt „Filterung mit Query Builder“Sie können Ergebnisse mit dem Query
Builder filtern:
use TCGdex\Query;
// Neue Abfrage erstellen$query = Query::create() ->equal('type', 'Colorless') // Nach exakter Übereinstimmung filtern ->contains('name', 'Pikachu') // Nach teilweiser Übereinstimmung filtern ->sort('hp', 'desc') // Nach HP absteigend sortieren ->paginate(1, 20); // Seite 1 mit 20 Elementen pro Seite abrufen
// Abfrage verwenden, um gefilterte Ergebnisse zu erhalten$filteredCards = $tcgdex->card->list($query);
Verfügbare Abfragemethoden:
// Grundlegende Filter$query->equal('field', 'value'); // Feld entspricht Wert$query->contains('field', 'value'); // Feld enthält Wert
// Sortierung$query->sort('field', 'asc'); // Aufsteigend sortieren$query->sort('field', 'desc'); // Absteigend sortieren
// Paginierung$query->paginate(2, 10); // Seite 2, 10 Elemente pro Seite
Modellnavigation
Abschnitt betitelt „Modellnavigation“Ressourcen verweisen oft auf andere Ressourcen. Sie können zwischen ihnen navigieren:
// Karte abrufen und zu ihrem Set navigieren$card = $tcgdex->card->get('swsh3-136');$setResume = $card->set; // SetResume von der Karte abrufen$fullSet = $setResume->toSet(); // Vollständiges Set vom SetResume abrufen
// Serie abrufen und zu ihren Sets navigieren$serie = $tcgdex->serie->get('swsh');foreach ($serie->sets as $setResume) { $fullSet = $setResume->toSet(); // Jetzt haben Sie Zugriff auf alle Set-Daten einschließlich Karten $cards = $fullSet->cards;}
Sprachunterstützung
Abschnitt betitelt „Sprachunterstützung“Das SDK unterstützt mehrere Sprachen für Kartendaten:
// Englisch (Standard)$enTcgdex = new TCGdex();$enTcgdex = new TCGdex("en");
// Französisch$frTcgdex = new TCGdex("fr");
// Deutsch$deTcgdex = new TCGdex("de");
vollständige Liste aller unterstützten Sprachcodes hier verfügbar
Benutzerdefinierte HTTP/Cache-Konfiguration
Abschnitt betitelt „Benutzerdefinierte HTTP/Cache-Konfiguration“Das SDK verwendet PSR-16, PSR-17 und PSR-18 Implementierungen für Caching und HTTP-Anfragen. Sie können benutzerdefinierte Implementierungen bereitstellen:
// Benutzerdefinierte Implementierungen festlegenuse Psr\SimpleCache\CacheInterface;use Psr\Http\Message\RequestFactoryInterface;use Psr\Http\Message\ResponseFactoryInterface;use Psr\Http\Client\ClientInterface;
// Benutzerdefinierten Cache festlegenTCGdex::$cache = /* PSR16 CacheInterface */;
// Benutzerdefinierte HTTP-Factories festlegenTCGdex::$requestFactory = /* PSR17 RequestFactoryInterface */;TCGdex::$responseFactory = /* PSR17 ResponseFactoryInterface */;
// Benutzerdefinierten HTTP-Client festlegenTCGdex::$client = /* PSR18 ClientInterface */;
// Cache-TTL festlegen (in Millisekunden)TCGdex::$ttl = 3600 * 1000; // 1 Stunde
Ressourcen
Abschnitt betitelt „Ressourcen“- Die JSON REST API Dokumentation - API-Referenz mit PHP SDK-Beispielen
- Packagist
- Quellcode auf GitHub
- Discord Community