新在Symfoob娱乐下载ny 6.3: Webhook和RemoteEvent组件
2023年5月10日·发表的哈维尔Eguiluz
ob娱乐下载Symfony 6.3是支持由:
Les-Tilleuls。鸡笼是70 + Symfony的团队专家可以ob娱乐下载帮助您设计、开发和修复您的项目。我们提供广泛的专业服务,包括开发、咨询、指导、培训和审计。我们还在JS高技能,去DevOps。我们是一个工人合作!
人则是用户定义的HTTP回调。他们允许其他服务提醒你关于外部事件你可以作出回应。例如,考虑一下packagist.org
网站发布信息PHP包。没有人,该网站将不得不叫GitHub, Gitlab等多次代码存储库是否改变了你的包。
相反,packagist.org
提供了一些人,GitHub和其他人可以调用发送你的包裹细节当你推新代码。这种方式,更改几乎立即传播和这些网站浪费资源问其他网站如果自上次事情都变了。
人非常普遍和方便,在Symfony 6.3我们引入ob娱乐下载新的Webhook组件和一个新的RemoteEvent组件。在Syob娱乐下载mfony中,您定义一个webhook解析器+消费者。首先,您创建一个解析器能够处理某些类型的webhook:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38
名称空间应用程序\Webhook;使用ob娱乐下载\组件\HttpFoundation\ChainRequestMatcher;使用ob娱乐下载\组件\HttpFoundation\请求;使用ob娱乐下载\组件\HttpFoundation\RequestMatcher\HostRequestMatcher;使用ob娱乐下载\组件\HttpFoundation\RequestMatcher\IsJsonRequestMatcher;使用ob娱乐下载\组件\HttpFoundation\RequestMatcher\MethodRequestMatcher;使用ob娱乐下载\组件\HttpFoundation\RequestMatcherInterface;使用ob娱乐下载\组件\RemoteEvent\异常\抛出ParseException;使用ob娱乐下载\组件\Webhook\客户端\AbstractRequestParser;使用ob娱乐下载\组件\Webhook\异常\RejectWebhookException;最后类MailerWebhookParser扩展AbstractRequestParser{受保护的函数getRequestMatcher():RequestMatcherInterface{/ /定义传入webhook请求的条件/ /必须匹配才能由这个解析器处理返回新ChainRequestMatcher ([新HostRequestMatcher (“github.com”),新IsJsonRequestMatcher (),新MethodRequestMatcher (“职位”)));}受保护的函数doParse(请求美元请求、字符串美元秘密):哦?RemoteEvent{/ /这个方法你检查请求负载是否包含/ /这个webhook过程所需的信息美元内容=美元请求- >toArray ();如果(!收取(美元内容(“签名”][“令牌”))){扔新RejectWebhookException (406年,有效载荷是畸形的。);}/ /你可以返回“零”或“RemoteEvent”对象返回新RemoteEvent (“mailer_callback.event”,“标识符”,美元内容);}}
然后,您创建一个消费阶层能够处理远程事件名称和一个相匹配的解析器(在本例中,返回的“mailer_callback.event”
事件):
1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\RemoteEvent\属性\AsRemoteEventConsumer;使用ob娱乐下载\组件\RemoteEvent\RemoteEvent;# (AsRemoteEventConsumer(名字:mailer_callback.event)]类MailerCallbackEventConsumer{公共函数消费(RemoteEvent美元事件):无效{/ /流程解析器返回的事件}}
这个例子显示了新组件的最基本的特征,但还有更多。我们还准备这些组件的文档,但是与此同时你可以免费观看法比安主题引入Webhook和RemoteEvent(该链接时你还会发现幻灯片)。
发表在#生活在边缘
评论
Rustam Bakeev
说5月11日,2023年在01:46
@Christian短距起落
首先,这个事件的组件将允许您使用现成的实现各种webhook供应商,与他们一起工作,并在必要时轻易替代它们。就像你已经与梅勒,结合不同的提供者。如果你编写自己的webhook处理程序,这个组件的最佳实践(比如异步处理)。我相信这些组件的主要目标是从编写自己的最终自由你请求解析器,允许您只关注事件使用者。
首先,这个事件的组件将允许您使用现成的实现各种webhook供应商,与他们一起工作,并在必要时轻易替代它们。就像你已经与梅勒,结合不同的提供者。如果你编写自己的webhook处理程序,这个组件的最佳实践(比如异步处理)。我相信这些组件的主要目标是从编写自己的最终自由你请求解析器,允许您只关注事件使用者。
伟大的除了!
在最后的代码示例中,类需要扩展的Symfony \组件\ RemoteEvent \消费者\ Consumob娱乐下载erInterface '否则会抛出一个异常:
https://github.com/ob娱乐下载symfony/symfony/blob/0a49ff8c54968c219d4bd4363b44371665b1755a/src/Symfony/Component/RemoteEvent/Messenger/ConsumeRemoteEventHandler.php L37
在最后的代码示例中,类需要扩展的Symfony \组件\ RemoteEvent \消费者\ Consumob娱乐下载erInterface '否则会抛出一个异常:
https://github.com/ob娱乐下载symfony/symfony/blob/0a49ff8c54968c219d4bd4363b44371665b1755a/src/Symfony/Component/RemoteEvent/Messenger/ConsumeRemoteEventHandler.php L37
@Kai Eichinger: parser-specific配置值。
您定义的解析器配置下的webhook。路由”,您可以定义这个webhook的秘密:
https://github.com/ob娱乐下载symfony/symfony/blob/0a49ff8c54968c219d4bd4363b44371665b1755a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php L2208
您定义的解析器配置下的webhook。路由”,您可以定义这个webhook的秘密:
https://github.com/ob娱乐下载symfony/symfony/blob/0a49ff8c54968c219d4bd4363b44371665b1755a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php L2208
一个简单的问题:“字符串$秘密”MailerWebhookParser论点::doParse()”来的?
你明确地称之为“RequestParser”“控制器”,它允许您通过任意数据,或者它是如何被使用的?
我猜我得看主题或等待文档吗?:)
我建议一些预配置的签名验证处理程序可以包含和/或它是抽象出来,这样您可以很容易地包括类吗?没有意义在每个人重新实现相同的签名验证代码相同的供应商一遍又一遍。
Christian Stoller is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now