Viewing file: Beautifier.php (4.42 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?PHP
/**
* XML/Beautifier.php
*
* Format XML files containing unknown entities (like all of peardoc)
*
* phpDocumentor :: automatic documentation generator
*
* PHP versions 4 and 5
*
* Copyright (c) 2004-2006 Gregory Beaver
*
* LICENSE:
*
* This library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General
* Public License as published by the Free Software Foundation;
* either version 2.1 of the License, or (at your option) any
* later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @package phpDocumentor
* @subpackage Parsers
* @author Greg Beaver <cellog@php.net>
* @copyright 2004-2006 Gregory Beaver
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @version CVS: $Id: Beautifier.php 212211 2006-04-30 22:18:14Z cellog $
* @filesource
* @link http://www.phpdoc.org
* @link http://pear.php.net/PhpDocumentor
* @since 1.3.0
*/
/**
* This is just like XML_Beautifier, but uses {@link phpDocumentor_XML_Beautifier_Tokenizer}
* @package phpDocumentor
* @subpackage Parsers
* @since 1.3.0
*/
class phpDocumentor_peardoc2_XML_Beautifier extends XML_Beautifier {
/**
* format a file or URL
*
* @access public
* @param string $file filename
* @param mixed $newFile filename for beautified XML file (if none is given, the XML string will be returned.)
* if you want overwrite the original file, use XML_BEAUTIFIER_OVERWRITE
* @param string $renderer Renderer to use, default is the plain xml renderer
* @return mixed XML string of no file should be written, true if file could be written
* @throws PEAR_Error
* @uses _loadRenderer() to load the desired renderer
*/
function formatFile($file, $newFile = null, $renderer = "Plain")
{
if ($this->apiVersion() != '1.0') {
return $this->raiseError('API version must be 1.0');
}
/**
* Split the document into tokens
* using the XML_Tokenizer
*/
require_once dirname(__FILE__) . '/Tokenizer.php';
$tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
$tokens = $tokenizer->tokenize( $file, true );
if (PEAR::isError($tokens)) {
return $tokens;
}
include_once dirname(__FILE__) . '/Plain.php';
$renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
$xml = $renderer->serialize($tokens);
if ($newFile == null) {
return $xml;
}
$fp = @fopen($newFile, "w");
if (!$fp) {
return PEAR::raiseError("Could not write to output file", XML_BEAUTIFIER_ERROR_NO_OUTPUT_FILE);
}
flock($fp, LOCK_EX);
fwrite($fp, $xml);
flock($fp, LOCK_UN);
fclose($fp);
return true; }
/**
* format an XML string
*
* @access public
* @param string $string XML
* @return string formatted XML string
* @throws PEAR_Error
*/
function formatString($string, $renderer = "Plain")
{
if ($this->apiVersion() != '1.0') {
return $this->raiseError('API version must be 1.0');
}
/**
* Split the document into tokens
* using the XML_Tokenizer
*/
require_once dirname(__FILE__) . '/Tokenizer.php';
$tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
$tokens = $tokenizer->tokenize( $string, false );
if (PEAR::isError($tokens)) {
return $tokens;
}
include_once dirname(__FILE__) . '/Plain.php';
$renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
$xml = $renderer->serialize($tokens);
return $xml;
}
}
?>
|