diff options
author | ctrlaltca@gmail.com <> | 2011-11-19 11:33:31 +0000 |
---|---|---|
committer | ctrlaltca@gmail.com <> | 2011-11-19 11:33:31 +0000 |
commit | 98dbe6f0d2edfff3a1f5785504504b4a6e5dd4eb (patch) | |
tree | 89f19120abb170cb37bb512c8c9535eb2b451da8 /buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php | |
parent | 1f09b786730956d01c48a82272617a0f8b2597f0 (diff) |
updating phpDocumentor, part 2: add new version
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php')
-rw-r--r-- | buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php b/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php new file mode 100644 index 00000000..81b2e782 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php @@ -0,0 +1,135 @@ +<?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; + } +} +?>
\ No newline at end of file |