Repository navigation
Installation
GameQ 5 requires:
- PHP 8.1 or newer;
-
ext-curlfor HTTP-backed and Epic Online Services queries; -
ext-libxml,ext-simplexml, andext-xmlfor XML protocols; - permission for the PHP process to make the required outbound UDP, TCP, TLS, and HTTP connections.
ext-bz2 is optional. It is only needed when a Source/A2S server returns a bzip2-compressed split response; uncompressed Source responses and other protocols work without it. If such a response is received without the extension, GameQ raises a protocol exception instead of attempting an unsafe or non-portable external-command fallback.
PHP 8.1 through 8.5 are covered by the regular test matrix. PHP 8.6 coverage is experimental until PHP 8.6 is stable.
Install the maintained fork with:
composer require softcreatr/gameq:^5.2Then load Composer in your application:
require __DIR__ . '/vendor/autoload.php';The package name is softcreatr/gameq. The upstream austinb/gameq package does not install this fork's version 5 code.
Run Composer's platform check on the deployment host if dependencies were built elsewhere:
composer check-platform-reqsDownload a release archive, unpack it outside the web root when possible, and load the bundled autoloader:
require_once '/path/to/GameQ/src/GameQ/Autoloader.php';Composer remains preferable because it validates required PHP extensions, reports the optional ext-bz2 suggestion, and produces a deterministic dependency graph.
GameQ's default HTTP transport uses ext-curl and needs no additional package. To integrate an application-managed Guzzle client, install Guzzle separately:
composer require guzzlehttp/guzzle:^7.9The GameQ\Http\GuzzleClient adapter uses Guzzle's bundled PSR-17 factory. GameQ\Http\Psr18Client can instead wrap another PSR-18 client when compatible PSR-17 request and stream factories are available. Neither Guzzle nor the PSR interfaces are required when the default CurlClient is used.
See HTTP and directory protocols for injection examples, proxy behavior, and the transport's security requirements.
<?php
require __DIR__ . '/vendor/autoload.php';
$gameQ = new GameQ\GameQ();
echo $gameQ::class, PHP_EOL;If this cannot load GameQ\GameQ, verify the autoloader path and confirm that the web or worker process uses the same PHP installation as the command line.
Continue with the quick start.
Getting started
Configuration
Guides
Reference
Development
Migration