Re: DBM/A Compatibility Layer
| From: | Tomas V.V.Cox | Date: | Wed, 19 Jun 2002 12:04:09 +0000 |
| Subject: | Re: DBM/A Compatibility Layer | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-7208@lists.php.net to get a copy of this message | ||
Please could you post the link to the code (the one in your site doesn't
seem to work).
Thanks,
Tomas V.V.Cox
Brent Cook wrote:
>
> Howdy,
>
> We had discussed earlier the possibility of having a DBM-style database
> compatibility layer to deal with the different DBM database libraries that
> PHP supports in a more consistent manner. To that end, I have written a
> class called DBA. It is a wrapper to the dba_* functions in PHP which
> provides an object interface and returns PEAR-style errors. It also
> implements a complete DBM-style database driver, written in PHP, which
> appears to be about as fast as any of the compiled-in drivers. One of the
> interesting features of the built-in driver is that it logs transactions,
> maintaining data integrity if there is a bug that prevents close() from
> being called properly.
>
> An example of this library's use is as follows:
>
> // $driver can be any of the native drivers,
> // or 'simple' for the built-in driver
> $db = DBA::create('simple');
>
> $db->insert($key, $value);
> $db->replace($key, $value);
> $db->delete($key);
>
> $db->close();
>
> Also included is a set of functions that wrap around the built-in DBM
> driver and provide the PHP dba_* functions on systems where they are not
> compiled in.
>
> I would like to include this library in PEAR. The code and some benchmark
> graphs are located here:
> http://www.brentandtiffany.org/projects/dba/news.xml.html
>
> There is a working table and relational database that go along with this,
> but I'm still working on cleaning, optimizing and PEARifying that code. I
> would enjoy any comments on design, utility and naming conventions for
> this library.
>
> - Brent
>
> --
> PEAR Development Mailing List (http://pear.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php