vulqen / symfony-bundle
Instrumentacja Symfony dla Vulqen: żądania HTTP, wyjątki i zapytania DBAL.
Package info
github.com/DeveloperLancer/vulqen-bundle
Type:symfony-bundle
pkg:composer/vulqen/symfony-bundle
Requires
- php: ^8.2
- symfony/config: ^6.4 || ^7.4
- symfony/dependency-injection: ^6.4 || ^7.4
- symfony/event-dispatcher: ^6.4 || ^7.4
- symfony/http-foundation: ^6.4 || ^7.4
- symfony/http-kernel: ^6.4 || ^7.4
- vulqen/php-sdk: ^0.4
Requires (Dev)
- doctrine/dbal: ^3.8 || ^4
- doctrine/doctrine-bundle: ^2.11
- phpstan/phpstan: ^2
- phpunit/phpunit: ^11.5.50 || ^12.5.33
- symfony/console: ^6.4 || ^7.4
- symfony/framework-bundle: ^6.4 || ^7.4
- symfony/http-client: ^6.4 || ^7.4
- symfony/messenger: ^6.4 || ^7.4
- symfony/yaml: ^6.4 || ^7.4
Suggests
- doctrine/doctrine-bundle: Spany db.query z middleware DBAL
- symfony/console: Transakcje komend konsoli
- symfony/http-client: Span http.client i nagłówek traceparent
- symfony/messenger: Ślad wiadomości od wysyłki do odbioru
Provides
None
Conflicts
None
Replaces
None
README
vulqen/symfony-bundle
Instrumentacja Symfony na paczce vulqen/php-sdk: transakcja na każde żądanie HTTP, wyjątki i zapytania Doctrine DBAL. Paczka Composer: vulqen/symfony-bundle.
Kanon: vulqen-docs, lokalnie ../vulqen-docs. Opis: plan/31-symfony-bundle.md. Zasady: AGENTS.md.
PHP 8.2+, Symfony 6.4 albo 7.4, Doctrine DBAL 3.8+ albo 4 (opcjonalnie).
Instalacja
Paczki są prywatne. Composer potrzebuje obu repozytoriów VCS i tokenu GitHub z odczytem (composer config --global github-oauth.github.com <token> albo COMPOSER_AUTH):
composer config repositories.vulqen-php-sdk vcs https://github.com/DeveloperLancer/vulqen-sdk-php.git composer config repositories.vulqen-symfony-bundle vcs https://github.com/DeveloperLancer/vulqen-bundle.git composer require vulqen/symfony-bundle:^0.2
Recipe Flex jeszcze nie ma (D-066), więc trzy kroki są ręczne.
-
config/bundles.php:Vulqen\SymfonyBundle\VulqenBundle::class => ['all' => true],
-
config/packages/vulqen.yaml:vulqen: dsn: '%env(default::VULQEN_DSN)%' environment: '%env(default:vulqen.default_environment:VULQEN_ENVIRONMENT)%' release: '%env(default::VULQEN_RELEASE)%' excluded_routes: [] when@test: vulqen: enabled: false
-
.env:VULQEN_DSN=
Prawdziwy DSN z dashboardu trafia do
.env.localalbo do sekretów, nie do gita.
Co zbiera
| Zdarzenie | Skąd |
|---|---|
transakcja http.server |
nazwa trasy z _route, bez dopasowania http.unmatched; status, pamięć, CPU |
span db.query |
każde zapytanie DBAL, tekst po normalizacji SDK, bez parametrów |
| błąd | wyjątek z kernel.exception, bez HttpException poniżej 500 |
Trasy z excluded_routes nie wysyłają nic. Żądanie z niepustym _api_resource_class jest operacją API Platform. Wysyłka idzie w kernel.terminate, czyli po fastcgi_finish_request() na PHP-FPM. Nagłówki, ciało żądania i parametry SQL nie trafiają do zdarzeń.
Wyłączenie
enabled: false nie rejestruje żadnego słuchacza ani middleware. Pusty VULQEN_DSN rejestruje słuchacze, które wracają od razu.
Testy
composer config repositories.vulqen-php-sdk '{"type":"path","url":"../vulqen-sdk-php","options":{"versions":{"vulqen/php-sdk":"0.2.0"}}}'
composer update
vendor/bin/phpunit
composer phpstan
Repozytorium path zostaje tylko w drzewie roboczym. bin/guard-no-path-repo w CI pada, gdy wejdzie do composer.json.