seamward / laravel-collector
Laravel adapter for the Seamward PHP collector.
Requires
- php: ^8.3
- illuminate/console: ^12.0 || ^13.0
- illuminate/contracts: ^12.0 || ^13.0
- illuminate/http: ^12.0 || ^13.0
- illuminate/queue: ^12.0 || ^13.0
- illuminate/support: ^12.0 || ^13.0
- seamward/php-collector: 0.1.0-alpha.1
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^10.0 || ^11.0
- pestphp/pest: ^4.0 || ^5.0
- pestphp/pest-plugin-laravel: ^4.0 || ^5.0
- phpstan/phpstan: ^2.0
This package is not auto-updated.
Last update: 2026-09-01 03:40:43 UTC
README
Laravel 12 and 13 adapter for seamward/php-collector. It provides named connections, explicit request-side or response-side outbound HTTP observation, queue and scheduled-feed wrappers, terminable webhook middleware, lifecycle flushing, and credential-safe diagnostics.
Status: alpha. This package is available under the MIT license.
Install
composer require seamward/php-collector:^0.1@alpha seamward/laravel-collector:^0.1@alpha php artisan vendor:publish --tag=seamward-config
The Laravel package installs the PHP collector as a dependency. During the alpha, both constraints are explicit so Composer permits both prerelease packages without changing the project's global minimum stability.
Once the package is installed and present in composer.lock, the Seamward CLI
and setup MCP can use the same Set up Seamward in this project. prompt as a
Node.js service. The preview supports Laravel 12 and 13 on PHP 8.3 or later,
literal webhook routes, and Http facade calls whose stable route can be
recovered without guessing. It generates named connection config and verifies
PHP plus an approved Composer script. Dynamic targets and other source shapes
return manual_required before any write.
Add one named connection per Seamward Integration boundary in config/seamward.php, then observe an inbound route:
Route::post('/webhooks/candidates', CandidateWebhookController::class) ->middleware('seamward.webhook:candidate_webhook,/webhooks/candidates');
Or wrap an existing Laravel HTTP call:
$response = app(Seamward\LaravelCollector\SeamwardManager::class)->observeHttp( connection: 'candidate_api', method: 'POST', routeTemplate: '/v1/candidates', callback: fn () => Http::post($providerUrl, $data), );
Choose request-side structural evidence when the provider response is not the contract you need to monitor:
$response = $manager->observeHttp( connection: 'candidate_api', method: 'POST', routeTemplate: '/v1/candidates', callback: fn () => Http::post($providerUrl, $data), payloadLocation: 'request', requestPayload: $data, );
The manager also exposes observeQueuePublish(), observeQueueConsumer(), and observeScheduledFeed() for explicit broker and scheduler boundaries. These wrappers do not acknowledge jobs, retry messages, or change scheduler behavior.
Deployment context is configured per named connection under deployment. The published config reads the supported Seamward and deployment-platform variables while configuration is loaded, so Laravel configuration caching remains safe.
Collector failures are fail-open. The original application response or exception remains authoritative.
Diagnostics
php artisan seamward:doctor
The command reports whether each named connection is configured and never prints credential values.
Development
composer install
composer test
composer analyse
composer format -- --test