alazziaz/laravel-dapr
最新稳定版本:v2.0.24
Composer 安装命令:
composer require alazziaz/laravel-dapr
包简介
Laravel-friendly tooling for publishing and consuming events over Dapr Pub/Sub.
README 文档
README
Laravel-friendly tooling for publishing and consuming framework events over Dapr Pub/Sub, mirroring the developer ergonomics of while swapping RabbitMQ, kafka transport for the Dapr sidecar.
Packages
alazziaz/laravel-dapr– metapackage that installs all components in one go.alazziaz/laravel-dapr-foundation– shared contracts, service provider, config, and documentation. Publishes the/dapr/subscribeendpoint and bridges local Laravel events to Dapr.alazziaz/laravel-dapr-publisher– Dapr-backed publisher with middleware pipeline, CloudEvent wrapping, and testing fakes.alazziaz/laravel-dapr-listener– Subscription discovery, HTTP ingress controller, listener middleware, and artisan tooling to scaffold listeners.alazziaz/laravel-dapr-invoker– Registers invocation routes for Dapr service invocation and ships a helper to call other services viainvokeMethod.
Install the metapackage for the full experience:
composer require alazziaz/laravel-dapr
- if you face any issues with php version, only add --ignore-platform-reqs flag to the above command this issue related to dapr-php-sdk package.
Highlights
- Automatically expose Laravel events to Dapr via
GET /dapr/subscribe. - Publish events with
event(new OrderPlaced(...))or the explicit publisher service. - Middleware pipelines on both publisher and listener sides for correlation IDs, tenancy, timestamps, and retries.
- Optional signature verification for ingress requests.
- Tests powered by Pest + Orchestra Testbench with a
DaprEventFakefor publisher assertions. - Service invocation support: expose Laravel actions to Dapr and call other services via the
dapr_invoke()helper. - Example Laravel application under
examples/laravel-appto demonstrate end-to-end usage.
Refer to docs/quickstart.md for setup guidance, Dapr component examples, and workflow details.
Example applications
Looking for a full end-to-end demo? Check out the companion repo: mohammedazman/laravel-dapr-events-example. It contains a pair of Laravel services wired up with these packages and ready to run against a Dapr sidecar.
Service invocation
Laravel’s Dapr Invoker allows you to expose invokable endpoints that can be called through Dapr’s service invocation API.
Important: If you are invoking your Laravel service through Dapr (e.g.,
/dapr/invoke/{method}), you must disable CSRF protection for this prefix. Add the following to your global middleware configuration:$middleware->validateCsrfTokens(except: [ 'dapr/invoke/*', ]);Dapr requests are stateless and do not include CSRF tokens, so CSRF must be excluded.
You can invoke any laravel route/method via Dapr service invocation. To do this, create an invokable handler:
Register invokable handlers in your Laravel routes:
Route::daprInvoke([ 'orders.create' => \App\Http\Controllers\Orders\CreateViaInvoke::class, ]); // or mount the default controller and manage handlers via config Route::daprInvokeController();
Call other services via Dapr:
$response = dapr_invoke('billing-service', 'health.check');
Set invocation.auto_register to true in config/dapr-invocation.php if you want the default /dapr/invoke/{method} route to be registered automatically when the service provider boots.
See `laravel-invoker' for more details.
PHP compatibility with dapr/php-sdk
The official Dapr PHP SDK only ships development builds right now and its dev-main branch targets PHP 8.4. Until upstream tags a stable release, you have two practical options when installing these packages:
-
Allow dev dependencies for the SDK in your consuming application:
{ "minimum-stability": "dev", "prefer-stable": true }or require the SDK explicitly with a dev constraint:
composer require dapr/php-sdk:dev-main --prefer-stable --ignore-platform-reqsor add to your
composer.json:{ "require": { "dapr/php-sdk": "dev-main" }, "prefer-stable": true } -
Pin to a released SDK version (for example
^1.2) if you can work with the APIs available there.
This requirement exists because the upstream Dapr SDK has not yet published a stable release that supports PHP 8.2/8.3.
统计信息
- 总下载量: 1.43k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-09