alazziaz / laravel-dapr-foundation
Foundation package for Laravel integration with Dapr Pub/Sub events.
Installs: 0
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/alazziaz/laravel-dapr-foundation
Requires
- php: ^8.2
- dapr/php-sdk: dev-main
- illuminate/console: ^10.0|^11.0|^12.0
- illuminate/events: ^10.0|^11.0|^12.0
- illuminate/http: ^10.0|^11.0|^12.0
- illuminate/routing: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
Requires (Dev)
- mockery/mockery: ^1.6
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- phpstan/phpstan: ^1.11
README
Shared contracts, configuration, and service provider for bridging Laravel events with the Dapr Pub/Sub building block.
Installation
composer require alazziaz/laravel-dapr-foundation php artisan dapr:install
Features
GET /dapr/subscribeendpoint declared viaRoute::daprSubscriptions().- Topic resolution based on event class → dotted slug, with overrides via
#[Topic('custom.topic')]orconfig/dapr.php. - Queueable listener that republishes local Laravel events through the Dapr publisher (toggle with
publish_local_events). - Contracts for event payload serialization, topic resolution, and publisher bindings.
- Optional HMAC signature verification for inbound Dapr requests.
Configuration
Publish the configuration and adjust as needed:
return [ 'pubsub' => [ 'name' => env('DAPR_PUBSUB', 'pubsub'), ], 'topics' => [ // App\Events\OrderPlaced::class => 'orders.placed', ], 'http' => [ 'prefix' => 'dapr', 'verify_signature' => false, 'signature_header' => 'x-dapr-signature', ], 'serialization' => [ 'wrap_cloudevent' => true, ], 'publish_local_events' => true, ];
Artisan commands
dapr:install– publish config and listener stub.dapr:list– display discovered subscriptions and routes (supports--json).
Usage
Add the route macro (typically in routes/api.php):
use AlazziAz\LaravelDapr\Support\RouteMacros; Route::daprSubscriptions();
With the publisher/listener packages installed, local Laravel events are automatically bridged to Dapr topics and inbound messages are re-dispatched as native events.
PHP compatibility note
The upstream dapr/php-sdk currently exposes only dev-main builds and targets PHP 8.4. If your application is on PHP 8.2 or 8.3, you must either loosen minimum-stability (while keeping prefer-stable: true) or pin the SDK to a tagged release that supports your runtime until the project ships a stable 8.4-compatible version.