[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/src/Error/Renderer/ -> XmlRenderer.php (source)

   1  <?php
   2  
   3  /**
   4   * Joomla! Content Management System
   5   *
   6   * @copyright  (C) 2005 Open Source Matters, Inc. <https://www.joomla.org>
   7   * @license    GNU General Public License version 2 or later; see LICENSE
   8   */
   9  
  10  namespace Joomla\CMS\Error\Renderer;
  11  
  12  use Joomla\CMS\Error\AbstractRenderer;
  13  
  14  // phpcs:disable PSR1.Files.SideEffects
  15  \defined('JPATH_PLATFORM') or die;
  16  // phpcs:enable PSR1.Files.SideEffects
  17  
  18  /**
  19   * XML error page renderer
  20   *
  21   * @since  4.0.0
  22   */
  23  class XmlRenderer extends AbstractRenderer
  24  {
  25      /**
  26       * The format (type) of the error page
  27       *
  28       * @var    string
  29       * @since  4.0.0
  30       */
  31      protected $type = 'xml';
  32  
  33      /**
  34       * Render the error page for the given object
  35       *
  36       * @param   \Throwable  $error  The error object to be rendered
  37       *
  38       * @return  string
  39       *
  40       * @since   4.0.0
  41       */
  42      public function render(\Throwable $error): string
  43      {
  44          // Create our data object to be rendered
  45          $xw = new \XMLWriter();
  46          $xw->openMemory();
  47          $xw->setIndent(true);
  48          $xw->setIndentString("\t");
  49          $xw->startDocument('1.0', 'UTF-8');
  50  
  51          $xw->startElement('error');
  52  
  53          $xw->writeElement('code', $error->getCode());
  54          $xw->writeElement('message', $error->getMessage());
  55  
  56          // Include the stack trace if in debug mode
  57          if (JDEBUG) {
  58              $xw->writeElement('trace', $error->getTraceAsString());
  59          }
  60  
  61          // End error element
  62          $xw->endElement();
  63  
  64          // Push the data object into the document
  65          $this->getDocument()->setBuffer($xw->outputMemory(true));
  66  
  67          if (ob_get_contents()) {
  68              ob_end_clean();
  69          }
  70  
  71          return $this->getDocument()->render();
  72      }
  73  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer