logo       

cvs: pear /XML_Transformer README package.xml /XML_Transformer/Transformer: msg#00570

php.cvs.pear

Subject: cvs: pear /XML_Transformer README package.xml /XML_Transformer/Transformer Cache.php OutputBuffer.php /XML_Transformer/Transformer/Driver Cache.php OutputBuffer.php

sebastian Wed Sep 25 05:08:26 2002 EDT

Added files:
/pear/XML_Transformer/Transformer/Driver Cache.php OutputBuffer.php

Removed files:
/pear/XML_Transformer/Transformer Cache.php OutputBuffer.php

Modified files:
/pear/XML_Transformer README package.xml
Log:
Hopefully the last change to the class tree layout.


Index: pear/XML_Transformer/README
diff -u pear/XML_Transformer/README:1.3 pear/XML_Transformer/README:1.4
--- pear/XML_Transformer/README:1.3 Fri Sep 20 15:04:30 2002
+++ pear/XML_Transformer/README Wed Sep 25 05:08:23 2002
@@ -214,11 +214,11 @@

* TODO (kk)

-2.6 XML_Transformer_Cache
+2.6 XML_Transformer_Driver_Cache

* TODO (sb)

-2.7 XML_Transformer_OutputBuffer
+2.7 XML_Transformer_Driver_OutputBuffer

* TODO (any)

Index: pear/XML_Transformer/package.xml
diff -u pear/XML_Transformer/package.xml:1.58
pear/XML_Transformer/package.xml:1.59
--- pear/XML_Transformer/package.xml:1.58 Tue Sep 24 14:02:39 2002
+++ pear/XML_Transformer/package.xml Wed Sep 25 05:08:24 2002
@@ -33,6 +33,10 @@

+ Added Widget namespace handler.

+* Renamed XML_Transformer_Cache and XML_Transformer_OutputBuffer
+ to XML_Transformer_Driver_Cache and XML_Transformer_Driver_OutputBuffer
+ respectively.
+
* Significant performance improvement by preventing unnecessary
recursive parsing.

@@ -61,6 +65,11 @@
<filelist>
<dir name="/" baseinstalldir="XML">
<dir name="Transformer">
+ <dir name="Driver">
+ <file role="php" name="Cache.php"/>
+ <file role="php" name="OutputBuffer.php"/>
+ </dir>
+
<dir name="Namespace">
<file role="php" name="Anchor.php"/>
<file role="php" name="DocBook.php"/>
@@ -69,10 +78,8 @@
<file role="php" name="Widget.php"/>
</dir>

- <file role="php" name="Cache.php"/>
<file role="php" name="CallbackRegistry.php"/>
<file role="php" name="Namespace.php"/>
- <file role="php" name="OutputBuffer.php"/>
<file role="php" name="Util.php"/>
</dir>


Index: pear/XML_Transformer/Transformer/Driver/Cache.php
+++ pear/XML_Transformer/Transformer/Driver/Cache.php
<?php
//
// +----------------------------------------------------------------------+
// | PEAR :: XML :: Transformer |
// +----------------------------------------------------------------------+
// | Copyright (c) 2002 Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx> and |
// | Kristian Köhntopp <kris@xxxxxxxxxxxx>. |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.00 of the PHP License, |
// | that is available at http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@xxxxxxx so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
//
// $Id: Cache.php,v 1.1 2002/09/25 09:08:25 sebastian Exp $
//

require_once 'Cache/Lite.php';
require_once 'XML/Transformer.php';

/**
* Caching Transformer.
*
* @author Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx>
* Kristian Köhntopp <kris@xxxxxxxxxxxx>
* @version $Revision: 1.1 $
* @access public
*/
class XML_Transformer_Driver_Cache extends XML_Transformer {
// {{{ Members

/**
* @var object
* @access private
*/
var $_cache = false;

// }}}
// {{{ function XML_Transformer_Driver_Cache($parameters = array())

/**
* Constructor.
*
* @param array
* @access public
*/
function XML_Transformer_Driver_Cache($parameters = array()) {
$this->XML_Transformer($parameters);
$this->_cache = new Cache_Lite($parameters);
}

// }}}
// {{{ function transform($xml, $cacheID = '')

/**
* Cached transformation a given XML string using
* the registered PHP callbacks for overloaded tags.
*
* @param string
* @param string
* @return string
* @access public
*/
function transform($xml, $cacheID = '') {
$cacheID = ($cacheID != '') ? $cacheID : md5($xml);

$cachedResult = $this->_cache->get($cacheID, 'XML_Transformer');

if ($cachedResult !== false) {
return $cachedResult;
}

$result = parent::transform($xml);
$this->_cache->save($result, $cacheID, 'XML_Transformer');

return $result;
}

// }}}
}

/*
* vim600: et sw=2 ts=2 fdm=marker
* vim<600: et sw=2 ts=2
*/
?>

Index: pear/XML_Transformer/Transformer/Driver/OutputBuffer.php
+++ pear/XML_Transformer/Transformer/Driver/OutputBuffer.php
<?php
//
// +----------------------------------------------------------------------+
// | PEAR :: XML :: Transformer |
// +----------------------------------------------------------------------+
// | Copyright (c) 2002 Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx> and |
// | Kristian Köhntopp <kris@xxxxxxxxxxxx>. |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.00 of the PHP License, |
// | that is available at http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@xxxxxxx so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
//
// $Id: OutputBuffer.php,v 1.1 2002/09/25 09:08:25 sebastian Exp $
//

require_once 'XML/Transformer.php';

/**
* Uses PHP's Output Buffering mechanism to catch the
* output of a script, transforms it, and outputs the
* result.
*
* Example
*
* <?php
* require_once 'XML/Transformer/Driver/OutputBuffer.php';
*
* $t = new XML_Transformer_Driver_OutputBuffer(
* array(
* 'overloadedElements' => array(
* 'bold' => array(
* 'start' => 'startElementBold',
* 'end' => 'endElementBold'
* )
* )
* )
* );
*
* function startElementBold($attributes) {
* return '<b>';
* }
*
* function endElementBold($cdata) {
* return $cdata . '</b>';
* }
* ?>
* <bold>text</bold>
*
* Output
*
* <b>text</b>
*
* @author Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx>
* Kristian Köhntopp <kris@xxxxxxxxxxxx>
* @version $Revision: 1.1 $
* @access public
*/
class XML_Transformer_Driver_OutputBuffer extends XML_Transformer {
// {{{ Members

/**
* @var boolean
* @access private
*/
var $_started = false;

// }}}
// {{{ function XML_Transformer_Driver_OutputBuffer($parameters = array())

/**
* Constructor.
*
* @param array
* @access public
*/
function XML_Transformer_Driver_OutputBuffer($parameters = array()) {
$this->XML_Transformer($parameters);

if (!empty($this->_callbackRegistry->overloadedElements) ||
!empty($this->_callbackRegistry->overloadedNamespaces)) {
$this->start();
}
}

// }}}
// {{{ function start()

/**
* Starts the output-buffering,
* and thus the transformation.
*
* @access public
*/
function start() {
if (!$this->_started) {
ob_start(
array(
$this, 'transform'
)
);

$this->_started = true;

$this->_debug(
'start: ' . serialize($this)
);
}
}

// }}}
}

/*
* vim600: et sw=2 ts=2 fdm=marker
* vim<600: et sw=2 ts=2
*/
?>



--
PEAR CVS Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise