https://github.com/andkom/php-berkeley-db
A simple Berkeley DB library for PHP.
https://github.com/andkom/php-berkeley-db
berkeley berkeley-db database library php php-library
Last synced: 10 months ago
JSON representation
A simple Berkeley DB library for PHP.
- Host: GitHub
- URL: https://github.com/andkom/php-berkeley-db
- Owner: andkom
- License: mit
- Created: 2018-07-19T08:59:43.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-15T07:02:37.000Z (over 7 years ago)
- Last Synced: 2025-06-05T01:57:04.284Z (about 1 year ago)
- Topics: berkeley, berkeley-db, database, library, php, php-library
- Language: PHP
- Size: 10.7 KB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# PHP Berkeley DB
Simple Berkeley DB wrapper for PHP.
## Installation
**Download Berkeley DB source:**
```bash
wget 'http://download.oracle.com/berkeley-db/db-x.x.x.tar.gz'
tar -xzvf db-x.x.x.tar.gz
```
**Build Berkeley DB libraries and headers:**
```bash
cd db-x.x.x/build_unix/
../dist/configure --enable-cxx
make
make install
```
**Install php_db4 extension for "phpdb4" adapter (better):**
Build db4 extension:
```bash
cd ../lang/php4_db
phpize
./configure --with-db4=/usr/local/BerkeleyDB.x.x
make
make install
```
Add db4 extension to php.ini:
```ini
extension=db4.so
```
**Or install db4 DBA handler for "dba" adapter:**
Build PHP with db4 support:
```bash
./configure --with-db4=/usr/local/BerkeleyDB.x.x
make
sudo make install
```
**Install composer package:**
```bash
composer install andkom/php-berkeley-db
```
## Usage
**Create instance:**
```PHP
use AndKom\BerkeleyDb\Adapter\AdapterFactory;
$adapter = AdapterFactory::create(); // use first available adapter
$adapter = AdapterFactory::create("phpdb4"); // use phpdb4 adapter
$adapter = AdapterFactory::create("dba"); // use dba adapter
```
**Open database for reading:**
```PHP
$adapter->open("filename", "r");
```
**Open database with optional database name:**
```PHP
$adapter->open("filename", "r", "main");
```
**Open database for writing:**
```PHP
$adapter->open("filename", "w");
```
**Close database:**
```PHP
$adapter->close();
```
**Sync changes to database:**
```PHP
$adapter->sync();
```
**Read key value:**
```PHP
$value = $adapter->get("key");
```
**Write key value:**
```PHP
$adapter->put("key", "value");
```
**Delete key:**
```PHP
$adapter->delete("key");
```
**Returns first key and moves cursor to the next position:**
```PHP
$adapter->firstKey();
```
**Read next key and moves cursor to the next position:**
```PHP
$adapter->nextKey();
```
**Read all database keys:**
```PHP
foreach ($adapter->read() as $key => $value) {
...
}
```
### Laravel Service Provider
**Publish configuration to app config:**
```bash
./artisan vendor:publish --provider=AndKom\\BerkeleyDb\\ServiceProvider
```
**Edit app/config/berkeleydb.php:**
```PHP
'phpdb4',
'filename' => database_path('database.dat'),
'database' => null,
'mode' => 'w',
];
```
**Use BDB facade to access database methods:**
```PHP
$value = BDB::get("key");
```