vulqen / php-sdk
Zbieranie zdarzeń Vulqen bez znajomości Symfony.
v0.4.0
2026-10-13 08:25 UTC
Requires
- php: ^8.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- opis/json-schema: ^2.6
- phpstan/phpstan: ^2
- phpunit/phpunit: ^11.5.50 || ^12.5.33
- psr/log: ^3.0
Suggests
- psr/log: Gdy host poda logger, SDK pisze na poziomie debug.
Provides
None
Conflicts
None
Replaces
None
README
vulqen/php-sdk
Rdzeń zbierania zdarzeń, bez Symfony. Paczka Composer: vulqen/php-sdk.
Kanon: vulqen-docs, lokalnie ../vulqen-docs. Opis: plan/30-sdk-php.md. Protokół: plan/20-protokol-ingestu.md. Zasady: AGENTS.md.
Użycie
Aplikacja Symfony używa bundla vulqen/symfony-bundle, który woła SDK sam. Bez frameworka:
use Vulqen\Sdk\Client; use Vulqen\Sdk\Options; $client = new Client(new Options( dsn: getenv('VULQEN_DSN') ?: null, environment: 'prod', release: getenv('VULQEN_RELEASE') ?: null, projectRoot: __DIR__, )); $transaction = $client->startTransaction('app_order_show', 'http.server'); $span = $client->startSpan('db.query', 'SELECT * FROM orders WHERE id = ?', ['db.system' => 'mysql']); $client->finishSpan($span); $transaction?->setHttpStatus(200); $client->finishTransaction(); $client->flush();
Pusty DSN daje klienta, który nic nie robi. flush() woła się po wysłaniu odpowiedzi, na przykład po fastcgi_finish_request().
Testy
composer update vendor/bin/phpunit composer phpstan
Test kontraktu czyta ../vulqen/spec, gdy katalog istnieje, potem tests/fixtures/spec (kopia tagu VULQEN_SPEC_REF), albo katalog z VULQEN_SPEC_DIR. Test e2e biegnie tylko z VULQEN_E2E_DSN (workflow test-e2e.yml).