Re: cvs: pear /XML_Transformer Transformer.php package.xml /XML_Transformer/Transformer/Driver OutputBuffer.php

From: 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 EDT
 Modified 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)
+                );
+            }
        }
    }


« previous php.pear.cvs (#12563) next »