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.  * @package    phpDocumentor
  31.  * @subpackage Parsers
  32.  * @author     Greg Beaver <[email protected]>
  33.  * @copyright  2004-2006 Gregory Beaver
  34.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  35.  * @version    CVS: $Id: Beautifier.php 212211 2006-04-30 22:18:14Z cellog $
  36.  * @filesource
  37.  * @link       http://www.phpdoc.org
  38.  * @link       http://pear.php.net/PhpDocumentor
  39.  * @since      1.3.0
  40.  */
  41.  
  42.  
  43. /**
  44.  * This is just like XML_Beautifier, but uses {@link phpDocumentor_XML_Beautifier_Tokenizer}
  45.  * @package phpDocumentor
  46.  * @subpackage Parsers
  47.  * @since 1.3.0
  48.  */
  49. class phpDocumentor_peardoc2_XML_Beautifier extends XML_Beautifier {
  50.  
  51.    /**
  52.     * format a file or URL
  53.     *
  54.     * @access public
  55.     * @param  string    $file       filename
  56.     * @param  mixed     $newFile    filename for beautified XML file (if none is given, the XML string will be returned.)
  57.     *                                if you want overwrite the original file, use XML_BEAUTIFIER_OVERWRITE
  58.     * @param  string    $renderer   Renderer to use, default is the plain xml renderer
  59.     * @return mixed                 XML string of no file should be written, true if file could be written
  60.     * @throws PEAR_Error
  61.     * @uses   _loadRenderer() to load the desired renderer
  62.     */   
  63.     function formatFile($file$newFile null$renderer "Plain")
  64.     {
  65.         if ($this->apiVersion(!= '1.0'{
  66.             return $this->raiseError('API version must be 1.0');
  67.         }
  68.         /**
  69.          * Split the document into tokens
  70.          * using the XML_Tokenizer
  71.          */
  72.         require_once dirname(__FILE__'/Tokenizer.php';
  73.         $tokenizer new phpDocumentor_XML_Beautifier_Tokenizer();
  74.         
  75.         $tokens $tokenizer->tokenize$filetrue );
  76.  
  77.         if (PEAR::isError($tokens)) {
  78.             return $tokens;
  79.         }
  80.         
  81.         include_once dirname(__FILE__'/Plain.php';
  82.         $renderer new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
  83.         
  84.         $xml $renderer->serialize($tokens);
  85.         
  86.         if ($newFile == null{
  87.             return $xml;
  88.         }
  89.         
  90.         $fp @fopen($newFile"w");
  91.         if (!$fp{
  92.             return PEAR::raiseError("Could not write to output file"XML_BEAUTIFIER_ERROR_NO_OUTPUT_FILE);
  93.         }
  94.         
  95.         flock($fpLOCK_EX);
  96.         fwrite($fp$xml);
  97.         flock($fpLOCK_UN);
  98.         fclose($fp);
  99.         return true;    }
  100.  
  101.    /**
  102.     * format an XML string
  103.     *
  104.     * @access public
  105.     * @param  string    $string     XML
  106.     * @return string    formatted XML string
  107.     * @throws PEAR_Error
  108.     */   
  109.     function formatString($string$renderer "Plain")
  110.     {
  111.         if ($this->apiVersion(!= '1.0'{
  112.             return $this->raiseError('API version must be 1.0');
  113.         }
  114.         /**
  115.          * Split the document into tokens
  116.          * using the XML_Tokenizer
  117.          */
  118.         require_once dirname(__FILE__'/Tokenizer.php';
  119.         $tokenizer new phpDocumentor_XML_Beautifier_Tokenizer();
  120.         
  121.         $tokens $tokenizer->tokenize$stringfalse );
  122.  
  123.         if (PEAR::isError($tokens)) {
  124.             return $tokens;
  125.         }
  126.  
  127.         include_once dirname(__FILE__'/Plain.php';
  128.         $renderer new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
  129.         
  130.         $xml $renderer->serialize($tokens);
  131.         
  132.         return $xml;
  133.     }
  134. }
  135. ?>

Documentation generated on Tue, 06 Dec 2011 07:10:05 -0600 by phpDocumentor 1.4.4