sbergmann Thu Mar 1 23:52:56 2001 EDT
Added files:
/php4/pear/Cache Function.php
Modified files:
/php4/pear Makefile.in
Log:
Added experimental version of Cache_Function module.
Index: php4/pear/Makefile.in
diff -u php4/pear/Makefile.in:1.71 php4/pear/Makefile.in:1.72
--- php4/pear/Makefile.in:1.71 Thu Mar 1 11:22:25 2001
+++ php4/pear/Makefile.in Thu Mar 1 23:52:56 2001
@@ -36,6 +36,7 @@
Benchmark/Timer.php \
Cache.php \
Cache/Container.php \
+ Cache/Function.php \
Cache/Graphics.php \
Cache/Output.php \
Cache/Container/db.php \
Index: php4/pear/Cache/Function.php
+++ php4/pear/Cache/Function.php
<?php
// +----------------------------------------------------------------------+
// | PHP version 4.0 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.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 |
// | [EMAIL PROTECTED] so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Sebastian Bergmann <[EMAIL PROTECTED]> |
// +----------------------------------------------------------------------+
//
// $Id: Function.php,v 1.1 2001/03/02 07:52:56 sbergmann Exp $
require_once 'Cache.php';
function cached_function_call()
{
static $cache;
// create Cache object, if needed
if (!is_object($cache))
{
$cache = new Cache(CACHE_CONTAINER, CACHE_CONTAINER_OPTIONS)
}
// get arguments
$arguments = func_get_args();
// generate cache id
$id = md5(serialize($arguments));
// query cache
$cached_object = $cache->get($id);
// cache hit
if ($cached_object != NULL)
{
$output = $cached_object[0];
$result = $cached_object[1];
}
// cache miss
else
{
$function_name = array_shift($arguments);
// call function, save output and result
ob_start();
$result = call_user_func_array($function_name, $arguments);
$output = ob_get_contents();
ob_end_clean();
// store output and result of function call in cache
$cache->save($id, array($output, $result));
}
print $output;
return $result;
}
?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]