From a4c4544c1f2a3da8a5e06174fc0a082af05d63ba Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Fri, 1 Dec 2017 13:49:30 +0200 Subject: [PATCH 1/2] [doc][skip ci] add doc for client on send extensions. --- docs/client/extensions.md | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/client/extensions.md diff --git a/docs/client/extensions.md b/docs/client/extensions.md new file mode 100644 index 000000000..0e121b5c3 --- /dev/null +++ b/docs/client/extensions.md @@ -0,0 +1,45 @@ +# Client extensions. + +There is an ability to hook into sending process. You have to create an extension class that implements `Enqueue\Client\ExtensionInterface` interface. +For example, `TimestampMessageExtension` extension adds timestamps every message before sending it to MQ. + +```php +getTimestamp()) { + $message->setTimestamp(time()); + } + } + + public function onPostSend($topic, Message $message) + { + + } +} +``` + +## Symfony + +To use the extension in Symfony, you have to register it as a container service with a special tag. + +```yaml +# config/services.yaml + +services: + timestamp_message_extension: + class: Acme\TimestampMessageExtension + tags: + - { name: 'enqueue.client.extensions' } +``` + +You can add `priority` attribute with a number. The higher value you set the earlier the extension is called. + +[back to index](../index.md) From 1bc875eca0fea53a8dd2003a3144fd64016b7073 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Fri, 1 Dec 2017 13:51:31 +0200 Subject: [PATCH 2/2] [doc][skip ci] add client extensions doc to index. --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index c72d2ec73..3148c42ab 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,6 +22,7 @@ - [Supported brokers](client/supported_brokers.md) - [Message bus](client/message_bus.md) - [RPC call](client/rpc_call.md) + - [Extensions](client/extensions.md) * [Job queue](#job-queue) - [Run unique job](job_queue/run_unique_job.md) - [Run sub job(s)](job_queue/run_sub_job.md)