Re: cvs: pear /XML_Transformer Transformer.php package.xml /XML_Transformer/Transformer/Driver OutputBuffer.php
| From: | Alan Knowles | Date: | Mon, 08 Sep 2003 23:33:57 +0000 |
| Subject: | Re: cvs: pear /XML_Transformer Transformer.php package.xml /XML_Transformer/Transformer/Driver OutputBuffer.php | ||
| References: | 1 | Groups: | php.pear.cvs |
| Request: | Send a blank email to pear-cvs+get-12563@lists.php.net to get a copy of this message | ||
Sebastian Bergmann wrote:
It's slightly better to do the if ($this->_debug) { $this->_debug(...); } check outside the debug method, as the overhead of the debug method calls can be quite high..
BTW - any chance that the default debug level when on to just echo to the screen - it was a bit of a pigs ear to use, and I ended up just adding echo statements cause it was too complex..
Regards
Alan
sebastian Mon Sep 8 12:25:06 2003 EDTModified files: /pear/XML_Transformer Transformer.php package.xml /pear/XML_Transformer/Transformer/Driver OutputBuffer.php Log:Performance improvements due to changes in the debug mode. Index: pear/XML_Transformer/Transformer.php diff -u pear/XML_Transformer/Transformer.php:1.111 pear/XML_Transformer/Transformer.php:1.112 --- pear/XML_Transformer/Transformer.php:1.111 Sat Jan 18 13:13:04 2003 +++ pear/XML_Transformer/Transformer.php Mon Sep 8 12:25:06 2003 @@ -13,7 +13,7 @@// | license@php.net so we can mail you a copy immediately. |// +---------------------------------------------------------------------------+ // -// $Id: Transformer.php,v 1.111 2003/01/18 18:13:04 sebastian Exp $ +// $Id: Transformer.php,v 1.112 2003/09/08 16:25:06 sebastian Exp $ // require_once 'XML/Transformer/CallbackRegistry.php'; @@ -28,7 +28,7 @@ * * @author Sebastian Bergmann <sb@sebastian-bergmann.de> * @author Kristian Köhntopp <kris@koehntopp.de> -* @version $Revision: 1.111 $ +* @version $Revision: 1.112 $ * @access public */ class XML_Transformer { @@ -482,15 +482,16 @@$this->_elementStack[$this->_level] = $element; $this->_attributesStack[$this->_level] = $attributes;- $this->_debug( - sprintf( - 'startElement[%d]: %s %s', - $this->_level, - $element, - XML_Transformer_Util::attributesToString($attributes) - ), - $element - ); + if ($this->_checkDebug($element)) { + $this->_debug( + sprintf( + 'startElement[%d]: %s %s', + $this->_level, + $element, + XML_Transformer_Util::attributesToString($attributes) + ) + ); + }if ($process && isset($this->_callbackRegistry->overloadedNamespaces[$namespacePrefix]['active'])) {@@ -565,14 +566,15 @@if ($recursion) { // Recursively process this transformation's result.- $this->_debug( - sprintf( - 'start recursion[%d]: %s', - $this->_level, - $cdata - ), - '&RECURSE' - ); + if ($this->_checkDebug('&RECURSE')) { + $this->_debug( + sprintf( + 'start recursion[%d]: %s', + $this->_level, + $cdata + ) + ); + }$transformer = new XML_Transformer( array(@@ -584,26 +586,28 @@$cdata = $transformer->transform($cdata);+ if ($this->_checkDebug('&RECURSE')) { + $this->_debug( + sprintf( + 'end recursion[%d]: %s', + $this->_level, + $cdata + ) + ); + } + }++ if ($this->_checkDebug($element)) { $this->_debug( sprintf( - 'end recursion[%d]: %s', + 'endElement[%d]: %s (with cdata=%s)', $this->_level, - $cdata - ), - '&RECURSE' + $element, + $this->_cdataStack[$this->_level] + ) ); }- $this->_debug( - sprintf( - 'endElement[%d]: %s (with cdata=%s)', - $this->_level, - $element, - $this->_cdataStack[$this->_level] - ), - $element - );-// Move result of this transformation step to // the parent's CDATA section.@@ -621,15 +625,16 @@* @access private */ function _characterData($parser, $cdata) { - $this->_debug( - sprintf( - 'cdata [%d]: %s + %s', - $this->_level, - $this->_cdataStack[$this->_level], - $cdata - ), - '&CDATA' - ); + if ($this->_checkDebug('&CDATA')) { + $this->_debug( + sprintf( + 'cdata [%d]: %s + %s', + $this->_level, + $this->_cdataStack[$this->_level], + $cdata + ) + ); + }$this->_cdataStack[$this->_level] .= $cdata; }@@ -681,23 +686,40 @@}// }}} - // {{{ function _debug($debugMessage, $currentElement = '') + // {{{ function _checkDebug($currentElement = '')/** - * Sends a debug message to error.log, if debugging is enabled. + * Checks whether a debug message should be printed + * for the current event. * * @param string + * @return boolean * @access private */ - function _debug($debugMessage, $currentElement = '') { + function _checkDebug($currentElement = '') { if ($this->_debug && (empty($this->_debugFilter) || isset($this->_debugFilter[$currentElement]))) { - XML_Transformer_Util::logMessage( - $debugMessage, - $this->_logTarget - ); + return true; + } else { + return false; } + }++ // }}} + // {{{ function _debug($debugMessage, $currentElement = '')++ /** + * Sends a debug message to error.log, if debugging is enabled. + * + * @param string + * @access private + */ + function _debug($debugMessage) { + XML_Transformer_Util::logMessage( + $debugMessage, + $this->_logTarget + ); }// }}}Index: pear/XML_Transformer/package.xml diff -u pear/XML_Transformer/package.xml:1.65 pear/XML_Transformer/package.xml:1.66 --- pear/XML_Transformer/package.xml:1.65 Sat Jul 12 04:02:05 2003 +++ pear/XML_Transformer/package.xml Mon Sep 8 12:25:06 2003 @@ -29,7 +29,8 @@<date>2003-05-06</date> <notes><![CDATA[ -Bugfix release. +* Performance improvements due to changes in the + debug mode. ]]></notes> <filelist>@@ -62,6 +63,16 @@</deps></release> <changelog>+ <release> + <version>0.8.1</version> + <state>stable</state> + <date>2003-05-06</date> + <notes>+<![CDATA[ +* Bugfix release. +]]>+ </notes> + </release> <release> <version>0.8</version> <state>stable</state>Index: pear/XML_Transformer/Transformer/Driver/OutputBuffer.php diff -u pear/XML_Transformer/Transformer/Driver/OutputBuffer.php:1.6 pear/XML_Transformer/Transformer/Driver/OutputBuffer.php:1.7 --- pear/XML_Transformer/Transformer/Driver/OutputBuffer.php:1.6 Sat Jan 18 13:01:24 2003 +++ pear/XML_Transformer/Transformer/Driver/OutputBuffer.php Mon Sep 8 12:25:06 2003 @@ -13,7 +13,7 @@// | license@php.net so we can mail you a copy immediately. |// +---------------------------------------------------------------------------+ // -// $Id: OutputBuffer.php,v 1.6 2003/01/18 18:01:24 sebastian Exp $ +// $Id: OutputBuffer.php,v 1.7 2003/09/08 16:25:06 sebastian Exp $ // require_once 'XML/Transformer.php'; @@ -55,7 +55,7 @@ * * @author Sebastian Bergmann <sb@sebastian-bergmann.de> * @author Kristian Köhntopp <kris@koehntopp.de> -* @version $Revision: 1.6 $ +* @version $Revision: 1.7 $ * @access public */ class XML_Transformer_Driver_OutputBuffer extends XML_Transformer { @@ -103,9 +103,11 @@$this->_started = true;- $this->_debug( - 'start: ' . serialize($this) - ); + if ($this->_checkDebug()) { + $this->_debug( + 'start: ' . serialize($this) + ); + } } }