fkrzski/laravel-steam-api-sdk

Laravel bridge for fkrzski/php-steam-api-sdk — service provider, Steam facade and test fakes for the Steam Web API.

Maintainers

Package info

github.com/fkrzski/laravel-steam-api-sdk

pkg:composer/fkrzski/laravel-steam-api-sdk

Fund package maintenance!

fkrzski

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.1.0 2026-06-11 05:44 UTC

This package is auto-updated.

Last update: 2026-06-11 05:50:41 UTC


README

Banner of Laravel Steam API SDK

License Latest Version on Packagist Total Downloads Tests

Laravel bridge for fkrzski/php-steam-api-sdk. Ships a service provider, a Steam facade and a Steam::fake() test helper so you can talk to the Steam Web API the Laravel way.

  • Auto-discovered SteamConnector singleton, Octane-safe.
  • Rate-limit budget shared across processes through the Laravel cache store.
  • Fluent Steam facade with first-class request helpers.
  • One-liner test fakes via Saloon's MockClient.

Requirements

  • PHP 8.5+
  • Laravel 13+

Installation

composer require fkrzski/laravel-steam-api-sdk

The service provider and Steam facade are auto-discovered. Publish the config to override defaults:

php artisan vendor:publish --tag=steam-api-config

Set your Steam Web API key in .env:

STEAM_API_KEY=your-steam-web-api-key

Usage

use Fkrzski\LaravelSteamApiSdk\Facades\Steam;
use Fkrzski\SteamApiSdk\ValueObjects\SteamId;

$id = SteamId::fromSteamId64('76561198000000000');

$summaries    = Steam::playerSummaries([$id]);
$library      = Steam::ownedGames($id, appIdsFilter: [381210]);
$stats        = Steam::userStatsForGame($id, appId: 381210);
$achievements = Steam::playerAchievements($id, appId: 381210);
$resolvedId   = Steam::resolveVanityUrl('gabelogannewell');

DTOs, the SteamId value object and the exception hierarchy all come from the underlying SDK — see its README for the full surface.

Concurrent requests

Use pool() to fan out several requests at once:

use Fkrzski\LaravelSteamApiSdk\Facades\Steam;
use Fkrzski\SteamApiSdk\Http\Requests\GetOwnedGamesRequest;
use Fkrzski\SteamApiSdk\Http\Requests\GetPlayerSummariesRequest;
use Saloon\Http\Response;

Steam::pool(
    requests: [
        new GetOwnedGamesRequest($id, [381210]),
        new GetPlayerSummariesRequest([$id]),
    ],
    concurrency: 2,
    responseHandler: fn (Response $response) => /* ... */,
)->send()->wait();

Escape hatch

Need the raw connector or a custom request? Reach for it directly:

Steam::connector();          // the underlying SteamConnector
Steam::send($customRequest); // any Saloon Request

Testing

Steam::fake() attaches a Saloon MockClient to the singleton connector and returns it for assertions:

use Fkrzski\LaravelSteamApiSdk\Facades\Steam;
use Fkrzski\SteamApiSdk\Http\Requests\GetPlayerSummariesRequest;
use Saloon\Http\Faking\MockResponse;

$mock = Steam::fake([
    GetPlayerSummariesRequest::class => MockResponse::make([
        'response' => ['players' => [/* ... */]],
    ]),
]);

// ... exercise code that calls the Steam API ...

$mock->assertSent(GetPlayerSummariesRequest::class);

License

MIT. See LICENSE.md.