diff --git a/src/batch/docs/domain/item-job/item-writer.md b/src/batch/docs/domain/item-job/item-writer.md index 58006f12..67b74c01 100644 --- a/src/batch/docs/domain/item-job/item-writer.md +++ b/src/batch/docs/domain/item-job/item-writer.md @@ -27,6 +27,8 @@ It can be any class implementing [ItemWriterInterface](../../../src/Job/Item/Ite write items to a job summary value. - [TransformingWriter](../../../src/Job/Item/Writer/TransformingWriter.php): perform items transformation before delegating to another writer. +- [CallbackWriter](../../../src/Job/Item/Writer/CallbackWriter.php): + delegate items write operations to a closure passed at construction. **Item writers from bridges:** - [DispatchEachItemAsMessageWriter (`symfony/messenger`)](https://github.com/yokai-php/batch-symfony-messenger/blob/0.x/src/Writer/DispatchEachItemAsMessageWriter.php): diff --git a/src/batch/src/Job/Item/Writer/CallbackWriter.php b/src/batch/src/Job/Item/Writer/CallbackWriter.php new file mode 100644 index 00000000..a97b0c3c --- /dev/null +++ b/src/batch/src/Job/Item/Writer/CallbackWriter.php @@ -0,0 +1,25 @@ +callback)($items); + } +} diff --git a/src/batch/tests/Job/Item/Writer/CallbackWriterTest.php b/src/batch/tests/Job/Item/Writer/CallbackWriterTest.php new file mode 100644 index 00000000..e0756da9 --- /dev/null +++ b/src/batch/tests/Job/Item/Writer/CallbackWriterTest.php @@ -0,0 +1,23 @@ +write([1, 2, 3]); + $writer->write([4, 5, 6]); + + self::assertSame([1, 2, 3, 4, 5, 6], $saveditems); + } +}