From cbcaa38c5ea088ccb4d212497bd888884222d716 Mon Sep 17 00:00:00 2001 From: Evgeny Ivanov Date: Fri, 20 Mar 2015 21:12:28 +0300 Subject: [PATCH] loop refactoring --- examples/docs/processed/02-blocks.docx | Bin 11754 -> 11754 bytes .../Content/Collection/LoopCollection.php | 13 ++++++++++++ src/DocxTemplate/Content/MarkedContent.php | 19 ++++++++++++++++++ src/DocxTemplate/Template.php | 11 +--------- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/examples/docs/processed/02-blocks.docx b/examples/docs/processed/02-blocks.docx index baa8f4308142b3a8b2197134d98c412b24bc6d16..6b9e3c79021f3fb95524c94088b972ce7a10240d 100644 GIT binary patch delta 22 ccmaDA{VIAxfjX1>#LY$O`fNaY@?u?g0B~6du>b%7 delta 22 ccmaDA{VIAxfjUz_-{vB9eKsIHd9kiL0C3j`y#N3J diff --git a/src/DocxTemplate/Content/Collection/LoopCollection.php b/src/DocxTemplate/Content/Collection/LoopCollection.php index 4171c62..8750e27 100644 --- a/src/DocxTemplate/Content/Collection/LoopCollection.php +++ b/src/DocxTemplate/Content/Collection/LoopCollection.php @@ -39,6 +39,19 @@ public function getCurrentItem() return $this->currentItem; } + /** + * @param array $row + * @return $this + */ + public function assignRow(array $row) + { + $item = $this->itemStart(); + $item->assign($row); + $this->itemEnd(); + + return $this; + } + /** * @return MarkedContent */ diff --git a/src/DocxTemplate/Content/MarkedContent.php b/src/DocxTemplate/Content/MarkedContent.php index ae884cb..c3bc8a7 100644 --- a/src/DocxTemplate/Content/MarkedContent.php +++ b/src/DocxTemplate/Content/MarkedContent.php @@ -1,6 +1,7 @@ extractContent($name); + $loop = new LoopCollection($block); + + foreach ($rows as $row) { + $loop->assignRow($row); + } + + $loop->finish(); + return $this; + } + /** * @return string[] */ diff --git a/src/DocxTemplate/Template.php b/src/DocxTemplate/Template.php index 7e5c222..b6a0f9f 100644 --- a/src/DocxTemplate/Template.php +++ b/src/DocxTemplate/Template.php @@ -1,7 +1,6 @@ docContent->extractContent($name); - $loop = new LoopCollection($block); + $this->docContent->loop($name, $rows); - foreach ($rows as $row) { - $item = $loop->itemStart(); - $item->assign($row); - $loop->itemEnd(); - } - - $loop->finish(); return $this; } }