Zum Inhalt springen

Das PHP SDK

Version PackagistSterne auf GithubDownloads PackagistCodeabdeckungDie automatisierten Builds des TCGdex PHP SDK.

Ein vollständig typisiertes PHP SDK für den Zugriff auf Pokémon Trading Card Game Daten über die TCGdex API.

// Schnelles Beispiel
use 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})";
  1. Installieren Sie das SDK mit Composer

    Terminal-Fenster
    composer require tcgdex/sdk
  2. 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/buzz
// Paket importieren
use 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 zugreifen
echo $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
  • 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

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
// 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');
// 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();

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

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;
}

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

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 festlegen
use Psr\SimpleCache\CacheInterface;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Client\ClientInterface;
// Benutzerdefinierten Cache festlegen
TCGdex::$cache = /* PSR16 CacheInterface */;
// Benutzerdefinierte HTTP-Factories festlegen
TCGdex::$requestFactory = /* PSR17 RequestFactoryInterface */;
TCGdex::$responseFactory = /* PSR17 ResponseFactoryInterface */;
// Benutzerdefinierten HTTP-Client festlegen
TCGdex::$client = /* PSR18 ClientInterface */;
// Cache-TTL festlegen (in Millisekunden)
TCGdex::$ttl = 3600 * 1000; // 1 Stunde