Exemplo n.º 1
0
 /**
  * Display final results
  *
  * Display final results, when data source parsing is over.
  *
  * @access public
  * @return void
  * @since  version 1.8.0b2 (2008-06-03)
  */
 function display()
 {
     if ($this->parseData === false) {
         // invalid data source
         return;
     }
     $version = isset($this->conf['xml']['version']) ? $this->conf['xml']['version'] : '1.0';
     $encoding = isset($this->conf['xml']['encoding']) ? $this->conf['xml']['encoding'] : 'UTF-8';
     $standalone = isset($this->conf['xml']['standalone']) ? $this->conf['xml']['standalone'] : null;
     $msg = XML_Util::getXMLDeclaration($version, $encoding, $standalone);
     $msg .= PHP_EOL;
     $msg .= XML_Util::createStartElement('pci', array('version' => '1.9.0'));
     $o = $this->args['output-level'];
     $v = $this->args['verbose'];
     $dataSource = $this->_parser->dataSource['dataSource'];
     $dataType = $this->_parser->dataSource['dataType'];
     $options = $this->_parser->options;
     if ($dataType == 'directory' || $dataType == 'array' || $dataType == 'file') {
         // parsing a directory or a list of files, chunks of code
         if ($options['is_string'] == false) {
             if ($dataType == 'directory') {
                 // print <dir> tag
                 $tag = array('qname' => 'dir', 'content' => dirname($dataSource[0]));
             } else {
                 // print <file> tag
                 $tag = array('qname' => 'file', 'content' => $dataSource[0]);
             }
             $msg .= XML_Util::createTagFromArray($tag);
             $msg .= PHP_EOL;
         }
         // print global <version> tag
         if ($o & 16) {
             if (empty($this->parseData['max_version'])) {
                 $attr = array();
             } else {
                 $attr = array('max' => $this->parseData['max_version']);
             }
             $tag = array('qname' => 'version', 'attributes' => $attr, 'content' => $this->parseData['version']);
             $msg .= XML_Util::createTagFromArray($tag);
             $msg .= PHP_EOL;
         }
         // print global <conditions> tag group
         if ($o & 1) {
             $msg .= $this->_printTagList($this->parseData['cond_code'], 'condition');
         }
         // print global <extensions> tag group
         if ($o & 2) {
             $msg .= $this->_printTagList($this->parseData['extensions'], 'extension');
         }
         // print global <constants> tag group
         if ($o & 4) {
             $msg .= $this->_printTagList($this->parseData['constants'], 'constant');
         }
         // print global <tokens> tag group
         if ($o & 8) {
             $msg .= $this->_printTagList($this->parseData['tokens'], 'token');
         }
         // print global <ignored> tag group
         $msg .= XML_Util::createStartElement('ignored');
         $msg .= PHP_EOL;
         // with children groups <files>, <functions>, <extensions>, <constants>
         $ignored = array('file' => $this->parseData['ignored_files'], 'function' => $this->parseData['ignored_functions'], 'extension' => $this->parseData['ignored_extensions'], 'constant' => $this->parseData['ignored_constants']);
         foreach ($ignored as $tag => $data) {
             $msg .= $this->_printTagList($data, $tag);
         }
         $msg .= XML_Util::createEndElement('ignored');
         $msg .= PHP_EOL;
         // remove summary data
         unset($this->parseData['ignored_files']);
         unset($this->parseData['ignored_functions']);
         unset($this->parseData['ignored_extensions']);
         unset($this->parseData['ignored_constants']);
         unset($this->parseData['max_version']);
         unset($this->parseData['version']);
         unset($this->parseData['classes']);
         unset($this->parseData['functions']);
         unset($this->parseData['extensions']);
         unset($this->parseData['constants']);
         unset($this->parseData['tokens']);
         unset($this->parseData['cond_code']);
         if ($v & 4 || $options['debug'] == true) {
             // print local <functions> tag group
             $msg .= $this->_printTagList($this->parseData, 'function');
             $entries = array_keys($this->parseData);
             foreach ($entries as $k) {
                 if (is_numeric($k[0])) {
                     unset($this->parseData[$k]);
                 }
             }
         }
         if ($dataType == 'file') {
             // parsing a single file
             $files = array($dataSource[0] => $this->parseData);
         } else {
             $files = $this->parseData;
         }
     } else {
         // ... or a chunk of code (string)
         $files = array($this->parseData);
     }
     if ($this->args['summarize'] === false && count($files) > 1) {
         if ($options['is_string'] == false) {
             // print <files> tag group
             $msg .= XML_Util::createStartElement('files', array('count' => count($files)));
             $msg .= PHP_EOL;
         }
         foreach ($files as $file => $this->parseData) {
             if ($options['is_string'] == true) {
                 $msg .= XML_Util::createStartElement('string', array('name' => $file));
             } else {
                 // print local <file> tag
                 $msg .= XML_Util::createStartElement('file', array('name' => $file));
             }
             $msg .= PHP_EOL;
             // print local <version> tag
             if ($o & 16) {
                 if (empty($this->parseData['max_version'])) {
                     $attr = array();
                 } else {
                     $attr = array('max' => $this->parseData['max_version']);
                 }
                 $tag = array('qname' => 'version', 'attributes' => $attr, 'content' => $this->parseData['version']);
                 $msg .= XML_Util::createTagFromArray($tag);
                 $msg .= PHP_EOL;
             }
             // print local <conditions> tag group
             if ($o & 1) {
                 $msg .= $this->_printTagList($this->parseData['cond_code'], 'condition');
             }
             // print local <extensions> tag group
             if ($o & 2) {
                 $msg .= $this->_printTagList($this->parseData['extensions'], 'extension');
             }
             // print local <constants> tag group
             if ($o & 4) {
                 $msg .= $this->_printTagList($this->parseData['constants'], 'constant');
             }
             // print local <tokens> tag group
             if ($o & 8) {
                 $msg .= $this->_printTagList($this->parseData['tokens'], 'token');
             }
             // print local <ignored> tag group
             $msg .= XML_Util::createStartElement('ignored');
             $msg .= PHP_EOL;
             // with children groups <functions>, <extensions>, <constants>
             $ignored = array('function' => $this->parseData['ignored_functions'], 'extension' => $this->parseData['ignored_extensions'], 'constant' => $this->parseData['ignored_constants']);
             foreach ($ignored as $tag => $data) {
                 $msg .= $this->_printTagList($data, $tag);
             }
             $msg .= XML_Util::createEndElement('ignored');
             $msg .= PHP_EOL;
             // extra information only if verbose mode >= 4
             if ($v & 4 || $options['debug'] == true) {
                 unset($this->parseData['ignored_files']);
                 unset($this->parseData['ignored_functions']);
                 unset($this->parseData['ignored_extensions']);
                 unset($this->parseData['ignored_constants']);
                 unset($this->parseData['max_version']);
                 unset($this->parseData['version']);
                 unset($this->parseData['classes']);
                 unset($this->parseData['functions']);
                 unset($this->parseData['extensions']);
                 unset($this->parseData['constants']);
                 unset($this->parseData['tokens']);
                 unset($this->parseData['cond_code']);
                 // print local <functions> tag group
                 $msg .= $this->_printTagList($this->parseData, 'function');
             }
             if ($options['is_string'] == true) {
                 $msg .= XML_Util::createEndElement('string');
             } else {
                 $msg .= XML_Util::createEndElement('file');
             }
             $msg .= PHP_EOL;
         }
         if ($options['is_string'] == false) {
             $msg .= XML_Util::createEndElement('files');
             $msg .= PHP_EOL;
         }
     }
     $msg .= XML_Util::createEndElement('pci');
     $msg .= PHP_EOL;
     if (strtolower($this->conf['use-beautifier']) != 'no') {
         // try to see if we can improve XML render
         $beautifier = 'XML/Beautifier.php';
         if (PHP_CompatInfo_Renderer::isIncludable($beautifier)) {
             include_once $beautifier;
             $def = array();
             $opt = isset($this->conf['beautifier']) ? $this->conf['beautifier'] : $def;
             $fmt = new XML_Beautifier($opt);
             $msg = $fmt->formatString($msg);
         }
     }
     echo $msg;
 }
Exemplo n.º 2
0
 /**
  * Base Renderer Class constructor
  *
  * Base Renderer Class constructor (ZE2) for PHP5+
  *
  * @param object &$parser Instance of the parser (model of MVC pattern)
  * @param array  $conf    A hash containing any additional configuration
  *
  * @access public
  * @since  version 1.8.0b2 (2008-06-03)
  */
 function __construct(&$parser, $conf)
 {
     $this->_parser = $parser;
     $args = array('summarize' => false, 'output-level' => 31, 'verbose' => 0);
     if (isset($conf['args']) && is_array($conf['args'])) {
         $this->args = array_merge($args, $conf['args']);
         unset($conf['args']);
     } else {
         $this->args = $args;
     }
     $this->conf = $conf;
     if (php_sapi_name() == 'cli') {
         // when running the CLI version, take arguments from console
         if (isset($this->args['progress'])) {
             $conf['progress'] = $this->args['progress'];
             $conf['silent'] = false;
         }
         $this->eol = PHP_EOL;
     } else {
         $this->eol = '<br/>' . PHP_EOL;
     }
     // activate (or not) the silent mode
     if (!isset($conf['silent'])) {
         $this->silent = true;
         // default behavior
     } else {
         $this->silent = (bool) $conf['silent'];
     }
     if (isset($conf['progress']) && $conf['progress'] == 'bar') {
         // wait style = progress bar prefered (if available)
         $progressBar = 'Console/ProgressBar.php';
         if (php_sapi_name() == 'cli' && PHP_CompatInfo_Renderer::isIncludable($progressBar)) {
             include_once $progressBar;
             // default progress bar render options
             $default = array('formatString' => '- %fraction% files' . ' [%bar%] %percent%' . ' Elapsed Time: %elapsed%', 'barfill' => '=>', 'prefill' => '-', 'options' => array());
             // apply custom render options if given
             if (isset($conf['progressbar'])) {
                 $pbar = $conf['progressbar'];
             } else {
                 $pbar = array();
             }
             $this->_pbar = array_merge($default, $pbar);
         } else {
             // no progress bar available
             $this->_pbar = false;
         }
     } else {
         // wait style = text prefered
         $this->_pbar = false;
     }
     // register the compatInfo view as observer
     $parser->addListener(array(&$this, 'update'));
 }
 /**
  * Array Renderer Class constructor (ZE2) for PHP5+
  *
  * @param object &$parser Instance of the parser (model of MVC pattern)
  * @param array  $conf    A hash containing any additional configuration
  *
  * @access public
  * @since  version 1.8.0b2 (2008-06-03)
  */
 function __construct(&$parser, $conf)
 {
     parent::PHP_CompatInfo_Renderer($parser, $conf);
     $driver = 'PEAR::Var_Dump';
     if (isset($conf[$driver])) {
         $var_dump = 'Var_Dump.php';
         if (PHP_CompatInfo_Renderer::isIncludable($var_dump)) {
             include_once $var_dump;
             $class_options = $conf['PEAR::Var_Dump'];
             if (isset($class_options['options'])) {
                 $options = $class_options['options'];
             } else {
                 $options = array();
             }
             if (isset($class_options['rendererOptions'])) {
                 $rendererOptions = $class_options['rendererOptions'];
             } else {
                 $rendererOptions = array();
             }
             if (php_sapi_name() == 'cli') {
                 // prevent wrong display on command line interface
                 $options['display_mode'] = 'Text';
             }
             Var_Dump::displayInit($options, $rendererOptions);
             $this->driver = $driver;
         }
     }
     if (!isset($this->driver)) {
         // if optional driver not defined, then use default PHP::var_export
         $this->driver = 'PHP';
     }
 }