parentWriter = $writer; } /** * Get parent writer. * * @return \PhpOffice\PhpWord\Writer\AbstractWriter */ public function getParentWriter() { if (null !== $this->parentWriter) { return $this->parentWriter; } throw new Exception('No parent WriterInterface assigned.'); } /** * Get XML Writer. * * @return \PhpOffice\PhpWord\Shared\XMLWriter */ protected function getXmlWriter() { $useDiskCaching = false; if (null !== $this->parentWriter) { if ($this->parentWriter->isUseDiskCaching()) { $useDiskCaching = true; } } if ($useDiskCaching) { return new XMLWriter(XMLWriter::STORAGE_DISK, $this->parentWriter->getDiskCachingDirectory(), Settings::hasCompatibility()); } return new XMLWriter(XMLWriter::STORAGE_MEMORY, './', Settings::hasCompatibility()); } /** * Write an XML text, this will call text() or writeRaw() depending on the value of Settings::isOutputEscapingEnabled(). * * @param string $content The text string to write * * @return bool Returns true on success or false on failure */ protected function writeText($content) { if (Settings::isOutputEscapingEnabled()) { return $this->getXmlWriter()->text($content); } return $this->getXmlWriter()->writeRaw($content); } }