Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
<?php

namespace PhpOffice\PhpSpreadsheet\Shared;

class XMLWriter extends \XMLWriter
{
    public static $debugEnabled = false;

    /** Temporary storage method */
    const STORAGE_MEMORY = 1;
    const STORAGE_DISK = 2;

    /**
     * Temporary filename.
     *
     * @var string
     */
    private $tempFileName = '';

    /**
     * Create a new XMLWriter instance.
     *
< * @param int $pTemporaryStorage Temporary storage location < * @param string $pTemporaryStorageFolder Temporary storage folder
> * @param int $temporaryStorage Temporary storage location > * @param string $temporaryStorageFolder Temporary storage folder
*/
< public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = null)
> public function __construct($temporaryStorage = self::STORAGE_MEMORY, $temporaryStorageFolder = null)
{ // Open temporary storage
< if ($pTemporaryStorage == self::STORAGE_MEMORY) {
> if ($temporaryStorage == self::STORAGE_MEMORY) {
$this->openMemory(); } else { // Create temporary filename
< if ($pTemporaryStorageFolder === null) { < $pTemporaryStorageFolder = File::sysGetTempDir();
> if ($temporaryStorageFolder === null) { > $temporaryStorageFolder = File::sysGetTempDir();
}
< $this->tempFileName = @tempnam($pTemporaryStorageFolder, 'xml');
> $this->tempFileName = @tempnam($temporaryStorageFolder, 'xml');
// Open storage if ($this->openUri($this->tempFileName) === false) { // Fallback to memory... $this->openMemory(); } } // Set default values if (self::$debugEnabled) { $this->setIndent(true); } } /** * Destructor. */ public function __destruct() { // Unlink temporary files
> // There is nothing reasonable to do if unlink fails.
if ($this->tempFileName != '') {
> /** @scrutinizer ignore-unhandled */
@unlink($this->tempFileName); } } /** * Get written data. * * @return string */ public function getData() { if ($this->tempFileName == '') { return $this->outputMemory(true); } $this->flush(); return file_get_contents($this->tempFileName); } /** * Wrapper method for writeRaw. *
< * @param string|string[] $text
> * @param null|string|string[] $rawTextData
* * @return bool */
< public function writeRawData($text)
> public function writeRawData($rawTextData)
{
< if (is_array($text)) { < $text = implode("\n", $text);
> if (is_array($rawTextData)) { > $rawTextData = implode("\n", $rawTextData);
}
< return $this->writeRaw(htmlspecialchars($text));
> return $this->writeRaw(htmlspecialchars($rawTextData ?? ''));
} }