phpDocumentor
[ class tree: phpDocumentor ] [ index: phpDocumentor ] [ all elements ]

Source for file Beautifier.php

Documentation is available at Beautifier.php

  1. <?PHP
  2. /**
  3.  * XML/Beautifier.php
  4.  *
  5.  * Format XML files containing unknown entities (like all of peardoc)
  6.  *
  7.  * phpDocumentor :: automatic documentation generator
  8.  * 
  9.  * PHP versions 4 and 5
  10.  *
  11.  * Copyright (c) 2004-2006 Gregory Beaver
  12.  * 
  13.  * LICENSE:
  14.  * 
  15.  * This library is free software; you can redistribute it
  16.  * and/or modify it under the terms of the GNU Lesser General
  17.  * Public License as published by the Free Software Foundation;
  18.  * either version 2.1 of the License, or (at your option) any
  19.  * later version.
  20.  * 
  21.  * This library is distributed in the hope that it will be useful,
  22.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  23.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  24.  * Lesser General Public License for more details.
  25.  * 
  26.  * You should have received a copy of the GNU Lesser General Public
  27.  * License along with this library; if not, write to the Free Software
  28.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  29.  *
  30.  * @category   ToolsAndUtilities
  31.  * @package    phpDocumentor
  32.  * @subpackage Parsers
  33.  * @author     Greg Beaver <cellog@php.net>
  34.  * @copyright  2004-2006 Gregory Beaver
  35.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  36.  * @version    CVS: $Id$
  37.  * @filesource
  38.  * @link       http://www.phpdoc.org
  39.  * @link       http://pear.php.net/PhpDocumentor
  40.  * @since      1.3.0
  41.  */
  42.  
  43.  
  44. /**
  45.  * This is just like XML_Beautifier, but uses {@link phpDocumentor_XML_Beautifier_Tokenizer}
  46.  * @category ToolsAndUtilities
  47.  * @package phpDocumentor
  48.  * @subpackage Parsers
  49.  * @since 1.3.0
  50.  */
  51. class phpDocumentor_peardoc2_XML_Beautifier extends XML_Beautifier {
  52.  
  53.    /**
  54.     * format a file or URL
  55.     *
  56.     * @access public
  57.     * @param  string    $file       filename
  58.     * @param  mixed     $newFile    filename for beautified XML file (if none is given, the XML string will be returned.)
  59.     *                                if you want overwrite the original file, use XML_BEAUTIFIER_OVERWRITE
  60.     * @param  string    $renderer   Renderer to use, default is the plain xml renderer
  61.     * @return mixed                 XML string of no file should be written, true if file could be written
  62.     * @throws PEAR_Error
  63.     * @uses   _loadRenderer() to load the desired renderer
  64.     */   
  65.     function formatFile($file$newFile = null$renderer "Plain")
  66.     {
  67.         if ($this->apiVersion(!= '1.0'{
  68.             return $this->raiseError('API version must be 1.0');
  69.         }
  70.         /**
  71.          * Split the document into tokens
  72.          * using the XML_Tokenizer
  73.          */
  74.         require_once dirname(__FILE__'/Tokenizer.php';
  75.         $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
  76.         
  77.         $tokens $tokenizer->tokenize$filetrue );
  78.  
  79.         if (PEAR::isError($tokens)) {
  80.             return $tokens;
  81.         }
  82.         
  83.         include_once dirname(__FILE__'/Plain.php';
  84.         $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
  85.         
  86.         $xml $renderer->serialize($tokens);
  87.         
  88.         if ($newFile == null{
  89.             return $xml;
  90.         }
  91.         
  92.         $fp @fopen($newFile"w");
  93.         if (!$fp{
  94.             return PEAR::raiseError("Could not write to output file"XML_BEAUTIFIER_ERROR_NO_OUTPUT_FILE);
  95.         }
  96.         
  97.         flock($fpLOCK_EX);
  98.         fwrite($fp$xml);
  99.         flock($fpLOCK_UN);
  100.         fclose($fp);
  101.         return true;    }
  102.  
  103.    /**
  104.     * format an XML string
  105.     *
  106.     * @access public
  107.     * @param  string    $string     XML
  108.     * @return string    formatted XML string
  109.     * @throws PEAR_Error
  110.     */   
  111.     function formatString($string$renderer "Plain")
  112.     {
  113.         if ($this->apiVersion(!= '1.0'{
  114.             return $this->raiseError('API version must be 1.0');
  115.         }
  116.         /**
  117.          * Split the document into tokens
  118.          * using the XML_Tokenizer
  119.          */
  120.         require_once dirname(__FILE__'/Tokenizer.php';
  121.         $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
  122.         
  123.         $tokens $tokenizer->tokenize$stringfalse );
  124.  
  125.         if (PEAR::isError($tokens)) {
  126.             return $tokens;
  127.         }
  128.  
  129.         include_once dirname(__FILE__'/Plain.php';
  130.         $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
  131.         
  132.         $xml $renderer->serialize($tokens);
  133.         
  134.         return $xml;
  135.     }
  136. }
  137. ?>

Documentation generated on Mon, 11 Mar 2019 15:50:08 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.