Skip to content

v2.3.0

Latest

Choose a tag to compare

@kris-kuiper kris-kuiper released this 05 Sep 21:44

Changelog

[2.3.0] - 2026-09-05

Counting without paging, Guzzle 8 alongside Guzzle 7, and full endpoint coverage.
Backward compatible; no breaking changes.

Added

  • count() on every endpoint (and on EndpointInterface), returning how many records
    match a query without fetching them. It posts the given apicalypse body to the
    counting variant of the endpoint (POST /v4/<endpoint>/count) and returns the
    reported number; without a query it counts everything on the endpoint. Only the
    filters of a query are meaningful while counting, so a query built for a list call
    can be passed in unchanged.

    $igdb->game()->count();                        //Count all games
    $igdb->game()->count('where rating > 75;');    //Count all games matching a filter
  • Support for Guzzle 8 next to Guzzle 7. Nothing in this package depends on behaviour
    specific to either major; the suite runs green on both.

  • The 40 endpoints IGDB has added since the package was last completed, bringing the
    coverage to all 79 documented endpoints. Among them are the endpoints the deprecated
    fields point at: game_types, platform_types, character_genders,
    character_species, date_formats, external_game_sources, game_release_formats,
    game_statuses, website_types, image_types, age_rating_organizations,
    age_rating_categories and age_rating_content_descriptions_v2.

Changed

  • Widened guzzlehttp/guzzle to ^7.15.2 || ^8.0. The floor was raised from ^7.11
    because 7.11 through 7.15.1 carry the advisories fixed in 7.15.2.
  • The constructors of IGDB, Authentication, WebhookService, the endpoints and the
    requests accept a GuzzleHttp\ClientInterface instead of the concrete
    GuzzleHttp\Client, so the package is no longer tied to one implementation. Passing a
    Client keeps working; only a subclass that narrows the parameter back to Client
    in an overridden constructor would have to widen it.
  • A response to a counting request without a count throws RequestException rather
    than counting as zero.

Deprecated

  • IGDB::ageRatingContentDescription() and its endpoint: IGDB replaced it with
    age_rating_content_descriptions_v2, reachable through
    IGDB::ageRatingContentDescriptionV2().
  • IGDB::artworkType() and its endpoint: IGDB replaced it with image_types,
    reachable through IGDB::imageType(). Both are kept so existing code keeps working.

Fixed

  • The endpoint table in the readme was missing release_dates and
    release_date_regions, and the query builder examples filtered on genre and
    platform while the fields on a game are genres and platforms.