Viewing file: Beautifier.php (4.29 KB) -rw-rw-rw- 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; } } ?>
|