Rename SharedStringsHelper to SharedStringsManager (#435)

This commit is contained in:
Adrien Loison 2017-05-30 14:11:18 +02:00 committed by GitHub
parent cc9a0b526b
commit 7ec0f565fd
4 changed files with 30 additions and 29 deletions

View File

@ -9,7 +9,7 @@ use Box\Spout\Writer\Common\Creator\InternalFactoryInterface;
use Box\Spout\Writer\Common\Entity\Options; use Box\Spout\Writer\Common\Entity\Options;
use Box\Spout\Writer\Common\Manager\OptionsManagerInterface; use Box\Spout\Writer\Common\Manager\OptionsManagerInterface;
use Box\Spout\Writer\XLSX\Helper\FileSystemHelper; use Box\Spout\Writer\XLSX\Helper\FileSystemHelper;
use Box\Spout\Writer\XLSX\Helper\SharedStringsHelper; use Box\Spout\Writer\XLSX\Manager\SharedStringsManager;
use Box\Spout\Writer\XLSX\Manager\Style\StyleManager; use Box\Spout\Writer\XLSX\Manager\Style\StyleManager;
use Box\Spout\Writer\XLSX\Manager\Style\StyleRegistry; use Box\Spout\Writer\XLSX\Manager\Style\StyleRegistry;
use Box\Spout\Writer\XLSX\Manager\WorkbookManager; use Box\Spout\Writer\XLSX\Manager\WorkbookManager;
@ -48,10 +48,10 @@ class InternalFactory implements InternalFactoryInterface
$fileSystemHelper->createBaseFilesAndFolders(); $fileSystemHelper->createBaseFilesAndFolders();
$xlFolder = $fileSystemHelper->getXlFolder(); $xlFolder = $fileSystemHelper->getXlFolder();
$sharedStringsHelper = $this->createSharedStringsHelper($xlFolder); $sharedStringsManager = $this->createSharedStringsManager($xlFolder);
$styleManager = $this->createStyleManager($optionsManager); $styleManager = $this->createStyleManager($optionsManager);
$worksheetManager = $this->createWorksheetManager($optionsManager, $styleManager, $sharedStringsHelper); $worksheetManager = $this->createWorksheetManager($optionsManager, $styleManager, $sharedStringsManager);
return new WorkbookManager($workbook, $optionsManager, $worksheetManager, $styleManager, $fileSystemHelper, $this->entityFactory); return new WorkbookManager($workbook, $optionsManager, $worksheetManager, $styleManager, $fileSystemHelper, $this->entityFactory);
} }
@ -59,19 +59,19 @@ class InternalFactory implements InternalFactoryInterface
/** /**
* @param OptionsManagerInterface $optionsManager * @param OptionsManagerInterface $optionsManager
* @param StyleManager $styleManager * @param StyleManager $styleManager
* @param SharedStringsHelper $sharedStringsHelper * @param SharedStringsManager $sharedStringsManager
* @return WorksheetManager * @return WorksheetManager
*/ */
private function createWorksheetManager( private function createWorksheetManager(
OptionsManagerInterface $optionsManager, OptionsManagerInterface $optionsManager,
StyleManager $styleManager, StyleManager $styleManager,
SharedStringsHelper $sharedStringsHelper SharedStringsManager $sharedStringsManager
) )
{ {
$stringsEscaper = $this->createStringsEscaper(); $stringsEscaper = $this->createStringsEscaper();
$stringsHelper = $this->createStringHelper(); $stringsHelper = $this->createStringHelper();
return new WorksheetManager($optionsManager, $styleManager, $sharedStringsHelper, $stringsEscaper, $stringsHelper); return new WorksheetManager($optionsManager, $styleManager, $sharedStringsManager, $stringsEscaper, $stringsHelper);
} }
/** /**
@ -96,11 +96,12 @@ class InternalFactory implements InternalFactoryInterface
/** /**
* @param string $xlFolder Path to the "xl" folder * @param string $xlFolder Path to the "xl" folder
* @return SharedStringsHelper * @return SharedStringsManager
*/ */
private function createSharedStringsHelper($xlFolder) private function createSharedStringsManager($xlFolder)
{ {
return new SharedStringsHelper($xlFolder); $stringEscaper = $this->createStringsEscaper();
return new SharedStringsManager($xlFolder, $stringEscaper);
} }
/** /**

View File

@ -1,16 +1,17 @@
<?php <?php
namespace Box\Spout\Writer\XLSX\Helper; namespace Box\Spout\Writer\XLSX\Manager;
use Box\Spout\Common\Exception\IOException; use Box\Spout\Common\Exception\IOException;
use Box\Spout\Common\Escaper;
/** /**
* Class SharedStringsHelper * Class SharedStringsManager
* This class provides helper functions to write shared strings * This class provides functions to write shared strings
* *
* @package Box\Spout\Writer\XLSX\Helper * @package Box\Spout\Writer\XLSX\Manager
*/ */
class SharedStringsHelper class SharedStringsManager
{ {
const SHARED_STRINGS_FILE_NAME = 'sharedStrings.xml'; const SHARED_STRINGS_FILE_NAME = 'sharedStrings.xml';
@ -31,13 +32,14 @@ EOD;
/** @var int Number of shared strings already written */ /** @var int Number of shared strings already written */
protected $numSharedStrings = 0; protected $numSharedStrings = 0;
/** @var \Box\Spout\Common\Escaper\XLSX Strings escaper */ /** @var Escaper\XLSX Strings escaper */
protected $stringsEscaper; protected $stringsEscaper;
/** /**
* @param string $xlFolder Path to the "xl" folder * @param string $xlFolder Path to the "xl" folder
* @param Escaper\XLSX $stringsEscaper Strings escaper
*/ */
public function __construct($xlFolder) public function __construct($xlFolder, $stringsEscaper)
{ {
$sharedStringsFilePath = $xlFolder . '/' . self::SHARED_STRINGS_FILE_NAME; $sharedStringsFilePath = $xlFolder . '/' . self::SHARED_STRINGS_FILE_NAME;
$this->sharedStringsFilePointer = fopen($sharedStringsFilePath, 'w'); $this->sharedStringsFilePointer = fopen($sharedStringsFilePath, 'w');
@ -48,8 +50,7 @@ EOD;
$header = self::SHARED_STRINGS_XML_FILE_FIRST_PART_HEADER . ' ' . self::DEFAULT_STRINGS_COUNT_PART . '>'; $header = self::SHARED_STRINGS_XML_FILE_FIRST_PART_HEADER . ' ' . self::DEFAULT_STRINGS_COUNT_PART . '>';
fwrite($this->sharedStringsFilePointer, $header); fwrite($this->sharedStringsFilePointer, $header);
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $this->stringsEscaper = $stringsEscaper;
$this->stringsEscaper = \Box\Spout\Common\Escaper\XLSX::getInstance();
} }
/** /**

View File

@ -55,7 +55,7 @@ class WorkbookManager extends WorkbookManagerAbstract
*/ */
protected function closeRemainingObjects() protected function closeRemainingObjects()
{ {
$this->worksheetManager->getSharedStringsHelper()->close(); $this->worksheetManager->getSharedStringsManager()->close();
} }
/** /**

View File

@ -12,7 +12,6 @@ use Box\Spout\Writer\Common\Entity\Cell;
use Box\Spout\Writer\Common\Entity\Worksheet; use Box\Spout\Writer\Common\Entity\Worksheet;
use Box\Spout\Writer\Common\Manager\WorksheetManagerInterface; use Box\Spout\Writer\Common\Manager\WorksheetManagerInterface;
use Box\Spout\Writer\Common\Entity\Style\Style; use Box\Spout\Writer\Common\Entity\Style\Style;
use Box\Spout\Writer\XLSX\Helper\SharedStringsHelper;
use Box\Spout\Writer\XLSX\Manager\Style\StyleManager; use Box\Spout\Writer\XLSX\Manager\Style\StyleManager;
/** /**
@ -42,8 +41,8 @@ EOD;
/** @var StyleManager Manages styles */ /** @var StyleManager Manages styles */
private $styleManager; private $styleManager;
/** @var SharedStringsHelper Helper to write shared strings */ /** @var SharedStringsManager Helper to write shared strings */
private $sharedStringsHelper; private $sharedStringsManager;
/** @var \Box\Spout\Common\Escaper\XLSX Strings escaper */ /** @var \Box\Spout\Common\Escaper\XLSX Strings escaper */
private $stringsEscaper; private $stringsEscaper;
@ -56,30 +55,30 @@ EOD;
* *
* @param OptionsManagerInterface $optionsManager * @param OptionsManagerInterface $optionsManager
* @param StyleManager $styleManager * @param StyleManager $styleManager
* @param SharedStringsHelper $sharedStringsHelper * @param SharedStringsManager $sharedStringsManager
* @param \Box\Spout\Common\Escaper\XLSX $stringsEscaper * @param \Box\Spout\Common\Escaper\XLSX $stringsEscaper
* @param StringHelper $stringHelper * @param StringHelper $stringHelper
*/ */
public function __construct( public function __construct(
OptionsManagerInterface $optionsManager, OptionsManagerInterface $optionsManager,
StyleManager $styleManager, StyleManager $styleManager,
SharedStringsHelper $sharedStringsHelper, SharedStringsManager $sharedStringsManager,
\Box\Spout\Common\Escaper\XLSX $stringsEscaper, \Box\Spout\Common\Escaper\XLSX $stringsEscaper,
StringHelper $stringHelper) StringHelper $stringHelper)
{ {
$this->shouldUseInlineStrings = $optionsManager->getOption(Options::SHOULD_USE_INLINE_STRINGS); $this->shouldUseInlineStrings = $optionsManager->getOption(Options::SHOULD_USE_INLINE_STRINGS);
$this->styleManager = $styleManager; $this->styleManager = $styleManager;
$this->sharedStringsHelper = $sharedStringsHelper; $this->sharedStringsManager = $sharedStringsManager;
$this->stringsEscaper = $stringsEscaper; $this->stringsEscaper = $stringsEscaper;
$this->stringHelper = $stringHelper; $this->stringHelper = $stringHelper;
} }
/** /**
* @return SharedStringsHelper * @return SharedStringsManager
*/ */
public function getSharedStringsHelper() public function getSharedStringsManager()
{ {
return $this->sharedStringsHelper; return $this->sharedStringsManager;
} }
@ -241,7 +240,7 @@ EOD;
if ($this->shouldUseInlineStrings) { if ($this->shouldUseInlineStrings) {
$cellXMLFragment = ' t="inlineStr"><is><t>' . $this->stringsEscaper->escape($cellValue) . '</t></is></c>'; $cellXMLFragment = ' t="inlineStr"><is><t>' . $this->stringsEscaper->escape($cellValue) . '</t></is></c>';
} else { } else {
$sharedStringId = $this->sharedStringsHelper->writeString($cellValue); $sharedStringId = $this->sharedStringsManager->writeString($cellValue);
$cellXMLFragment = ' t="s"><v>' . $sharedStringId . '</v></c>'; $cellXMLFragment = ' t="s"><v>' . $sharedStringId . '</v></c>';
} }