PHP
Dapr提供了一个SDK,帮助开发PHP应用程序。通过它,您可以使用Dapr创建PHP客户端、服务器和虚拟actor。
设置
先决条件
可选先决条件
初始化您的项目
在您希望创建服务的目录中,运行composer init
并回答提示的问题。
使用composer require dapr/php-sdk
安装此SDK以及您可能需要的其他依赖项。
配置您的服务
创建一个config.php文件,并复制以下内容:
<?php
use Dapr\Actors\Generators\ProxyFactory;
use Dapr\Middleware\Defaults\{Response\ApplicationJson,Tracing};
use Psr\Log\LogLevel;
use function DI\{env,get};
return [
// 设置日志级别
'dapr.log.level' => LogLevel::WARNING,
// 在每个请求上生成一个新的代理 - 推荐用于开发
'dapr.actors.proxy.generation' => ProxyFactory::GENERATED,
// 在此处放置任何订阅
'dapr.subscriptions' => [],
// 如果此服务将托管任何actor,请在此处添加它们
'dapr.actors' => [],
// 配置Dapr在多长时间后认为actor空闲
'dapr.actors.idle_timeout' => null,
// 配置Dapr检查空闲actor的频率
'dapr.actors.scan_interval' => null,
// 配置Dapr在关闭期间等待actor完成的时间
'dapr.actors.drain_timeout' => null,
// 配置Dapr是否应等待actor完成
'dapr.actors.drain_enabled' => null,
// 您可以在此处更改Dapr的端口设置
'dapr.port' => env('DAPR_HTTP_PORT', '3500'),
// 添加任何自定义序列化例程
'dapr.serializers.custom' => [],
// 添加任何自定义反序列化例程
'dapr.deserializers.custom' => [],
// 以下设置为默认中间件,按指定顺序处理
'dapr.http.middleware.request' => [get(Tracing::class)],
'dapr.http.middleware.response' => [get(ApplicationJson::class), get(Tracing::class)],
];
创建您的服务
创建index.php
并放入以下内容:
<?php
require_once __DIR__.'/vendor/autoload.php';
use Dapr\App;
$app = App::create(configure: fn(\DI\ContainerBuilder $builder) => $builder->addDefinitions(__DIR__ . '/config.php'));
$app->get('/hello/{name}', function(string $name) {
return ['hello' => $name];
});
$app->start();
试用
使用dapr init
初始化Dapr,然后使用dapr run -a dev -p 3000 -- php -S 0.0.0.0:3000
启动项目。
您现在可以打开一个网页浏览器并访问http://localhost:3000/hello/world,将world
替换为您的名字、宠物的名字或您想要的任何内容。
恭喜,您已经创建了您的第一个Dapr服务!期待看到您会用它做些什么!
更多信息
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.