如何使用信使
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
如何使用信使
欧宝娱乐app下载地址Symfony的Messenger提供了一个消息总线和一些路由功能,用于在应用程序内发送消息,并通过消息队列等传输方式发送消息。在使用之前,请阅读Messenger组件文档要熟悉它的概念。
消息
在发送消息之前,必须先创建消息。对于消息没有特定的要求,除了它应该被Symfony Serializer实例序列化和不可序列化之外:欧宝娱乐app下载地址
12 3 4 5 6 7 8 9 10 11 12 13 14
/ / src /信息/ SmsNotification.php名称空间应用程序\消息;类SmsNotification{私人$内容;公共函数__construct(字符串$内容){$这->内容=$内容;}/ /……getter}
使用Messenger服务
启用后,message_bus
Service可以被注入到任何你需要的服务中,比如在控制器中:
12 3 4 5 6 7 8 9 10 11 12 13 14
/ / src /控制器/ DefaultController.php名称空间应用程序\控制器;使用应用程序\消息\SmsNotification;使用欧宝娱乐app下载地址\包\FrameworkBundle\控制器\AbstractController;使用欧宝娱乐app下载地址\组件\信使\MessageBusInterface;类DefaultController扩展AbstractController{公共函数指数(MessageBusInterface$公共汽车){$公共汽车->调度(新SmsNotification (“要发送的字符串……”));}}
注册处理程序
为了在发送消息时执行某些操作,您需要创建一个消息处理程序。它是一个带有__invoke
方法:
12 3 4 5 6 7 8 9 10 11 12 13
/ / src / MessageHandler / SmsNotificationHandler.php名称空间应用程序\MessageHandler;使用应用程序\消息\SmsNotification;使用欧宝娱乐app下载地址\组件\信使\处理程序\MessageHandlerInterface;类SmsNotificationHandler实现了MessageHandlerInterface{公共函数__invoke(SmsNotification$消息){//用它做点什么。}}
消息处理程序必须注册为服务和标记与messenger.message_handler
标签。如果你在用默认的服务。yaml的配置和实施MessageHandlerInterface或MessageSubscriberInterface,这已经为你做了,感谢自动配置.
如果你不使用服务自动配置,那么你需要添加以下配置:
- YAML
- XML
- PHP
1 2 3 4
#配置/ services.yaml服务:应用MessageHandler \ \ SmsNotificationHandler:标签:(messenger.message_handler)
12 3 4 5 6 7 8 9 10 11 12 13
<!--config/services.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><服务><服务id=“应用程序MessageHandler \ \ SmsNotificationHandler”><标签的名字=“messenger.message_handler”/>服务>服务>容器>
1 2 3 4 5
/ /配置/ services.php使用应用程序\MessageHandler\SmsNotificationHandler;$容器->注册(SmsNotificationHandler::类)->addTag (“messenger.message_handler”);
请注意
如果不能从处理程序的类型提示猜出消息,则使用处理
属性。
传输
默认情况下,消息一经分派就立即进行处理。如果希望异步处理消息,则必须配置传输。这些传输通过排队系统或第三方与应用程序通信。内置的AMQP传输允许你与大多数AMQP代理(如RabbitMQ)通信。
请注意
如果您需要更多的消息代理,您应该看一下排队的交通它支持Kafka、Amazon SQS或谷歌Pub/Sub。
传输使用“DSN”进行注册,DSN是表示连接凭据和配置的字符串。默认情况下,当您安装messenger组件时,应该已经创建了以下配置:
- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ messenger.yaml框架:信使:传输:amqp:“% env (MESSENGER_TRANSPORT_DSN) %”
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:运输的名字=“amqp”dsn=“% env (MESSENGER_TRANSPORT_DSN) %”/>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“传输”= > [amqp的= >' % env (MESSENGER_TRANSPORT_DSN) %,],],]);
1 2 3 4
# .env##> s欧宝娱乐app下载地址ymfony/messenger ###MESSENGER_TRANSPORT_DSN = amqp: / /客人:guest@localhost: 5672 / % 2 f /消息< sym欧宝娱乐app下载地址fony/messenger ###
这就足以让您将消息路由到amqp
交通工具。这也将为您配置以下服务:
- 一个
messenger.sender.amqp
发送者在路由消息时使用; - 一个
messenger.receiver.amqp
在使用消息时使用的接收器。
请注意
为了使用Symfony内置的AM欧宝娱乐app下载地址QP传输,您将需要Serializer Component。确保已安装:
1
$Composer需要symfony欧宝娱乐app下载地址/serializer-pack
路由
您可以选择将消息路由到发送方,而不是调用处理程序。作为传输的一部分,它负责将消息发送到某个地方。您可以通过以下配置配置哪条消息被路由到哪个发件人:
- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ messenger.yaml框架:信使:路由:“我的消息\ \消息”:amqp#已定义传输的名称
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:路由消息类型=“我的消息\ \消息”><框架:发送方服务=“amqp”/>框架:路由>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“路由”= > [“我的消息\ \消息”= >amqp的,],],]);
这样的配置只路由我\ \消息的信息
消息是异步的,其余消息仍将被直接处理。
您可以使用星号代替类名将所有类别的消息路由到同一发件人:
- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ messenger.yaml框架:信使:路由:“我的消息\ \ MessageAboutDoingOperationalWork”:another_transport‘*’:amqp
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:路由消息类型=“我的消息\ \消息”><框架:发送方服务=“another_transport”/>框架:路由><框架:路由消息类型=“*”><框架:发送方服务=“amqp”/>框架:路由>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8 9
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“路由”= > [“我的消息\ \消息”= >“another_transport”,‘*’= >amqp的,],],]);
一类消息也可以通过指定一个列表路由到多个发送者:
- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ messenger.yaml框架:信使:路由:“我的消息\ \ ToBeSentToTwoSenders”:amqp,审计)
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:路由消息类型=“我的消息\ \ ToBeSentToTwoSenders”><框架:发送方服务=“amqp”/><框架:发送方服务=“审计”/>框架:路由>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“路由”= > [“我的消息\ \ ToBeSentToTwoSenders”= > [amqp的,“审计”],],],]);
通过指定send_and_handle
选项,您还可以将一类消息路由到发送方,同时仍然将它们传递给各自的处理程序:
- YAML
- XML
- PHP
1 2 3 4 5 6 7
#配置/包/ messenger.yaml框架:信使:路由:“我的消息\ \ ThatIsGoingToBeSentAndHandledLocally”:发送者:(amqp)send_and_handle:真正的
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:路由消息类型=“我的消息\ \ ThatIsGoingToBeSentAndHandledLocally”send-and-handle=“真正的”><框架:发送方服务=“amqp”/>框架:路由>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8 9 10 11
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“路由”= > [“我的消息\ \ ThatIsGoingToBeSentAndHandledLocally”= > [“发送”= > [amqp的),“send_and_handle”= >真正的,],],],]);
消费信息
一旦您的消息被路由,您将在大多数情况下使用您的消息。为此,您可以使用信使:使用消息
命令如下:
1
$Bin /console messenger:消费消息amqp
第一个参数是接收方的服务名。可能是你的传输
也可以是你自己的接收器。
中间件
将消息分派到消息总线时会发生什么取决于中间件的集合(以及它们的顺序)。默认情况下,为每个总线配置的中间件是这样的:
日志记录
中间件。负责记录总线内消息的开始和结束;- _你自己的收藏中间件;
route_messages
中间件。将您配置的消息路由到相应的发送方,并停止中间件链;call_message_handler
中间件。将调用给定消息的消息处理程序。
请注意
这些中间件名称实际上是按照约定工作的快捷方式。的前缀是真实的服务idmessenger.middleware。
名称空间。
禁用默认中间件
如果你不希望中间件的默认集合出现在总线上,你可以像这样禁用它们:
- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ messenger.yaml框架:信使:公共汽车:messenger.bus.default:default_middleware:假
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:总线的名字=“messenger.bus.default”default-middleware=“假”/>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8 9 10
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“公共汽车”= > [“messenger.bus.default”= > [“default_middleware”= >假,],],],]);
添加自己的中间件
正如组件文档中所描述的,你可以在总线中添加自己的中间件来添加欧宝体育电话一些额外的功能,比如:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8
#配置/包/ messenger.yaml框架:信使:公共汽车:messenger.bus.default:中间件:-“应用程序、中间件、MyMiddleware”-“应用程序、中间件、AnotherMiddleware”
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:总线的名字=“messenger.bus.default”><框架:中间件id=“应用程序、中间件、MyMiddleware”/><框架:中间件id=“应用程序、中间件、AnotherMiddleware”/>框架:总线>框架:信使>框架:配置>容器>
12 3 4 5 6 7 8 9 10 11 12 13
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“公共汽车”= > [“messenger.bus.default”= > [“中间件”= > [“应用程序、中间件、MyMiddleware”,“应用程序、中间件、AnotherMiddleware”,],],],],]);
注意,如果服务是抽象的,那么每个总线将创建一个不同的服务实例。
使用中间件工厂
一些第三方包和库通过工厂提供可配置的中间件。定义这些需要基于Symfony的两步配置欧宝娱乐app下载地址依赖注入特点:
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#配置/ services.yaml服务:#步骤1:将工厂类注册为服务# dependencies实例化一个中间件doctrine.orm.messenger.middleware_factory.transaction:类:欧宝娱乐app下载地址Symfony \桥\学说\ \ DoctrineTransactionMiddlewareFactory使者参数:(“@doctrine”)#步骤2:一个抽象定义,它将使用default调用工厂#参数或中间件配置中提供的参数messenger.middleware.doctrine_transaction:类:欧宝娱乐app下载地址Symfony \桥\学说\ \ DoctrineTransactionMiddleware使者工厂:“doctrine.orm.messenger.middleware_factory.transaction: createMiddleware”文摘:真正的#当config中没有提供任何参数时使用的默认参数。例子:#中间件:# - doctrine_transaction: ~参数:(“违约”)
12 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
<!--config/services.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><服务><!--Step 1: a factory class is registered as a service with the required dependencies to instantiate a middleware --><服务id=“doctrine.orm.messenger.middleware_factory.transaction”类=“欧宝娱乐app下载地址Symfony \桥\主义\ \ DoctrineTransactionMiddlewareFactory使者”><论点类型=“服务”id=“主义”/>服务><!--Step 2: an abstract definition that will call the factory with default arguments or the ones provided in the middleware config --><服务id=“messenger.middleware.doctrine_transaction”类=“欧宝娱乐app下载地址Symfony \桥\主义\ \ DoctrineTransactionMiddleware使者”摘要=“真正的”><工厂服务=“doctrine.orm.messenger.middleware_factory.transaction”方法=“createMiddleware”/><论点>默认的论点>服务>服务>容器>
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
/ /配置/ services.php使用欧宝娱乐app下载地址\桥\学说\信使\DoctrineTransactionMiddleware;使用欧宝娱乐app下载地址\桥\学说\信使\DoctrineTransactionMiddlewareFactory;使用欧宝娱乐app下载地址\组件\DependencyInjection\参考;//第一步:一个工厂类被注册为一个服务//依赖来实例化中间件$容器->注册(“doctrine.orm.messenger.middleware_factory.transaction”, DoctrineTransactionMiddlewareFactory::类)->setArguments ([新引用(“原则”)));//第2步:使用default调用工厂的抽象定义//参数或中间件配置中提供的参数$容器->注册(“messenger.middleware.doctrine_transaction”, DoctrineTransactionMiddleware::类)->setFactory ([新引用(“doctrine.orm.messenger.middleware_factory.transaction”),“createMiddleware”])->setAbstract (真正的)->setArguments ([“默认”]);
实例中的“默认”值是要使用的实体管理器的名称,这是类所期望的参数欧宝娱乐app下载地址
方法。
然后可以引用和配置messenger.middleware.doctrine_transaction
服务作为中间件:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10
#配置/包/ messenger.yaml框架:信使:公共汽车:command_bus:中间件:#使用默认值-doctrine_transaction#使用其他实体管理器-doctrine_transaction:(“自定义”)
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:总线的名字=“command_bus”><!--Using defaults --><框架:中间件id=“doctrine_transaction”/><!--Using another entity manager --><框架:中间件id=“doctrine_transaction”><框架:论点>自定义框架:论点>框架:中间件>框架:总线>框架:信使>框架:配置>容器>
12 3 4 5 6 7 8 9 10 11 12 13 14 15
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“公共汽车”= > [“command_bus”= > [“中间件”= > [//使用默认值“doctrine_transaction”,//使用另一个实体管理器[“id”= >“doctrine_transaction”,“参数”= > [“自定义”]],],],],],],]);
请注意
中间件工厂只允许在配置中使用标量和数组参数(不允许引用其他服务)。对于大多数高级用例,手动注册中间件的具体定义并使用它的id。
提示
的messenger.middleware.doctrine_transaction
中间件是一个内置的中间件,在安装和启用DoctrineBundle和Messenger组件时自动连接。
自己的交通工具
一旦编写了传输的发送方和接收方,就可以注册传输工厂,以便能够通过Symfony应用程序中的DSN使用它。欧宝娱乐app下载地址
创建您的运输工厂
您需要给FrameworkBundle从DSN创建传输的机会。你将需要一个运输工厂:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
使用欧宝娱乐app下载地址\组件\信使\运输\TransportFactoryInterface;使用欧宝娱乐app下载地址\组件\信使\运输\TransportInterface;使用欧宝娱乐app下载地址\组件\信使\运输\ReceiverInterface;使用欧宝娱乐app下载地址\组件\信使\运输\SenderInterface;类YourTransportFactory实现了TransportFactoryInterface{公共函数createTransport(字符串$dsn数组,$选项):TransportInterface{返回新YourTransport (/ *……* /);}公共函数支持(字符串$dsn数组,$选项):保龄球{返回0= = =(大小写敏感$dsn,“my-transport: / /”);}}
传输对象需要实现TransportInterface
(它简单地结合了SenderInterface
而且ReceiverInterface
).它看起来是这样的:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
类YourTransport实现了TransportInterface{公共函数发送($消息):无效{/ /……}公共函数收到(可调用的$处理程序):无效{/ /……}公共函数停止():无效{/ /……}}
注册你的工厂
- YAML
- XML
- PHP
1 2 3 4
#配置/ services.yaml服务:你\ \ YourTransportFactory运输:标签:(messenger.transport_factory)
12 3 4 5 6 7 8 9 10 11 12 13
<!--config/services.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><服务><服务id=“你的\ \ YourTransportFactory运输”><标签的名字=“messenger.transport_factory”/>服务>服务>容器>
1 2 3 4 5
/ /配置/ services.php使用你的\运输\YourTransportFactory;$容器->注册(YourTransportFactory::类)->setTags ([“messenger.transport_factory”]);
使用交通工具
在framework.messenger.transports。*
配置,创建您的命名传输使用您自己的DSN:
- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ messenger.yaml框架:信使:传输:你的:“my-transport: / /……”
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<!--config/packages/messenger.xml --><??> . xml version="1.0" encoding="UTF-8"<容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:信使><框架:运输的名字=“你的”dsn=“my-transport: / /……”/>框架:信使>框架:配置>容器>
1 2 3 4 5 6 7 8
/ /配置/包/ messenger.php$容器->loadFromExtension (“框架”, (“信使号”= > [“传输”= > [“你的”= >“my-transport: / /……”,],],]);
除了能够将您的消息路由到你的
发件人,这将使您访问以下服务:
messenger.sender.yours
:发送者;messenger.receiver.yours
:接收器。