This is a PHP 4 wrapper for DB-4.2. It can either either link directly against libdb-4.2, which is necessary for running in a non Apache/mod_php4 environemnt), or against mod_db4, which provides additional safeties when running under Apache/mod_php4. *** A note about pthreads *** The db4 c++ library by default tries to link against libpthread on some systems (notably Linux). If your PHP install is not linked against libpthread, you will need to disable pthread support in db4. This can be done by compiling db4 with the flag --with-mutex=x86/gcc-assembly. PHP can itself be forced to link against libpthread either by manually editing its build files (which some distributions do), or by building it with --with-experimental-zts. This extension provides the following classes, which mirror the standard db4 C++ API. class Db4Env { function Db4Env($flags = 0) {} function close($flags = 0) {} // force a close function dbremove($txn, $filename, $database = null, $flags = 0) {} function dbrename($txn, $file, $database, $new_database, $flags = 0) {} function open($home, $flags = DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN, $mode = 0666) {} function remove($home, $flags = 0) {} function set_data_dir($directory) {} function txn_begin($parent_txn = null, $flags = 0) {} function txn_checkpoint($kbytes, $minutes, $flags = 0) {} } class Db4 { function Db4($dbenv = null) {} // create a new Db4 object using the optional DbEnv function open($txn = null, $file = null, $database = null, $flags = DB_CREATE, $mode = 0) {} function close() {} // force a close function del($key, $txn = null) {} function get($key, $txn = null, $flags = 0) {} function pget($key, &$pkey, $txn = null, $flags = 0) {} function get_type() {} // returns the stringified database type name function stat($txn = null, $flags = 0) {} // returns statistics as an associative array function join($cursor_list, $flags = 0) {} function sync() {} function truncate($txn = null, $flags = 0) {} function cursor($txn = null, flags = 0) {} } class Db4Txn { function abort() {} function commit() {} function discard() P{ function id() {} function set_timeout($timeout, $flags = 0) {} } class Db4Cursor { function close() {} function count() {} function del() {} function dup($flags = 0) {} function get($key, $flags = 0) {} function pget($key, &$primary_key, $flags = 0) {} function put($key, $data, $flags = 0) {} } The db4 extension attempts to be 'smart' for you by: o Automatically making operations auto-commit, when they must be transactional to even possibly succeed and you neglect a Db4Txn object. o Performing reference and dependency checking to insure that all resources are closed in the correct order. o Attempting intelligent default values for flags.