entityFactory = $entityFactory; } /** * @param OptionsManagerInterface $optionsManager * @return WorkbookManager */ public function createWorkbookManager(OptionsManagerInterface $optionsManager) { $workbook = $this->entityFactory->createWorkbook(); $fileSystemHelper = $this->createFileSystemHelper($optionsManager); $fileSystemHelper->createBaseFilesAndFolders(); $xlFolder = $fileSystemHelper->getXlFolder(); $sharedStringsHelper = $this->createSharedStringsHelper($xlFolder); $styleHelper = $this->createStyleHelper($optionsManager); $worksheetManager = $this->createWorksheetManager($optionsManager, $sharedStringsHelper, $styleHelper); return new WorkbookManager($workbook, $optionsManager, $worksheetManager, $styleHelper, $fileSystemHelper, $this->entityFactory); } /** * @param OptionsManagerInterface $optionsManager * @param SharedStringsHelper $sharedStringsHelper * @param StyleHelper $styleHelper * @return WorksheetManager */ private function createWorksheetManager( OptionsManagerInterface $optionsManager, SharedStringsHelper $sharedStringsHelper, StyleHelper $styleHelper ) { $stringsEscaper = $this->createStringsEscaper(); $stringsHelper = $this->createStringHelper(); return new WorksheetManager($optionsManager, $sharedStringsHelper, $styleHelper, $stringsEscaper, $stringsHelper); } /** * @param string $xlFolder Path to the "xl" folder * @return SharedStringsHelper */ private function createSharedStringsHelper($xlFolder) { return new SharedStringsHelper($xlFolder); } /** * @param OptionsManagerInterface $optionsManager * @return FileSystemHelper */ private function createFileSystemHelper(OptionsManagerInterface $optionsManager) { $tempFolder = $optionsManager->getOption(Options::TEMP_FOLDER); return new FileSystemHelper($tempFolder); } /** * @param OptionsManagerInterface $optionsManager * @return StyleHelper */ private function createStyleHelper(OptionsManagerInterface $optionsManager) { $defaultRowStyle = $optionsManager->getOption(Options::DEFAULT_ROW_STYLE); return new StyleHelper($defaultRowStyle); } /** * @return Escaper\XLSX */ private function createStringsEscaper() { return Escaper\XLSX::getInstance(); } /** * @return StringHelper */ private function createStringHelper() { return new StringHelper(); } }