PHPackages                             rmtram/simple-text-db - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. rmtram/simple-text-db

ActiveLibrary[Database &amp; ORM](/categories/database)

rmtram/simple-text-db
=====================

Simple text file based database and database mapper.

v1.0.2(10y ago)126MITPHPPHP &gt;= 5.4.0

Since Apr 25Pushed 10y ago2 watchersCompare

[ Source](https://github.com/Rmtram/SimpleTextDb)[ Packagist](https://packagist.org/packages/rmtram/simple-text-db)[ Docs](https://github.com/Rmtram/SimpleTextDb)[ RSS](/packages/rmtram-simple-text-db/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

[![Build Status](https://camo.githubusercontent.com/c3d12c2822ff284c8d502b3f86bc1eb592dd5c898e9e1e290b3623643afc6f6e/68747470733a2f2f7472617669732d63692e6f72672f526d7472616d2f53696d706c655465787444622e737667)](https://travis-ci.org/Rmtram/SimpleTextDb)[![Total Downloads](https://camo.githubusercontent.com/463faf78408cdde13bcc594d7c4615cd4a15c50bc0a52bd47d7fcaa722a4e19b/68747470733a2f2f706f7365722e707567782e6f72672f726d7472616d2f73696d706c652d746578742d64622f646f776e6c6f616473)](https://packagist.org/packages/rmtram/simple-text-db)[![Latest Stable Version](https://camo.githubusercontent.com/b32cd520809fcb2a62419ed2b4014c32bcb8ea0038d0031c45c4a52b6dc4a121/68747470733a2f2f706f7365722e707567782e6f72672f726d7472616d2f73696d706c652d746578742d64622f762f737461626c652e706e67)](https://packagist.org/packages/rmtram/simple-text-db)

Simple Text Database.
=====================

[](#simple-text-database)

Simple Text file based database and database mapper.

Install.
========

[](#install)

```
$ composer require rmtram/simple-text-db

```

Usage.
======

[](#usage)

### Connector

[](#connector)

For example create connector:

```
// argument is save storage.
$connector = new Connector(__DIR__ . '/db');
```

For example create table and select table:

```
$connector = new Connector(__DIR__ . '/db');

// arg1 = tableName, arg2 = driver(default = ListDriver)
$userManager = $connector->connection('users');
```

For example drop table:

```
$connector = new Connector(__DIR__ . '/db');

// Exception will occur if it fails.
try {
	$connector->drop('users');
} catch (Exception $e) {
	// fail process..
}
```

### Dirver

[](#dirver)

- List
    - list (Rmtram\\SimpleTextDb\\Drivers\\ListDriver)
    - hash (Rmtram\\SimpleTextDb\\Drivers\\HashMapDriver)

#### ListDriver

[](#listdriver)

- methods

    - all()
    - find(Closure $callable)
    - add(array $value)
    - bulkAdd(array $values)
    - update(array $update, Closure || null $callable)
    - delete(Closure $callable)
    - truncate()
- Where

    - eq($key, $val)
    - notEq($key, $val)
    - lt($key, $val)
    - lte($key, $val)
    - gt($key, $val)
    - gte($key, $val)
    - like($key, $val)
    - notLike($key, $val)
    - orEq($key, $val)
    - orNotEq($key, $val)
    - orLt($key, $val)
    - orLte($key, $val)
    - orGt($key, $val)
    - orGte($key, $val)
    - orLike($key, $val)
    - orNotLike($key, $val)

For example:

```
$connector = new Connector(__DIR__ . '/db');
$userManager = $connector->connection('users');
$userManager->add(['id' => 1, 'name' => 'example']);
$user = $userManager->where(function(Where $where) {
    $where->eq('id', 1);
})->first();
var_dump($user);
// array('id' => 1, 'name' => 'example')
```

##### all()

[](#all)

```
var_dump($userManager->all());
// e.g.
// [
//  	['id' => 1, 'name' => 'user1'],
//		['id' => 2, 'name' => 'user2']
// ]
```

##### find(Closure $callable)

[](#findclosure-callable)

- find in result(Result class)
    - get()
    - first()
    - exists()
    - count()
    - call(Closure $callable)

For example result pattern:

```
$result = $userManager->find(function(Where $where) {
	$where->eq('id', 1);
});

$result->get();
// [['id' => 1, 'name' => 'user'1]]

$result->first();
// ['id' => 1, 'name' => 'user1']

$result->count();
// 1

$result->exists();
// true

// (int)$index is list pointer.
// (array)$row => ['id' => 1, 'name' => 'user1']
$result->call(function($index, $row) {
	// any process.
});
```

For example where pattern:

```
$userManager->find(function(Where $where) {
	// id = 1
	$where->eq('id', 1);

	// id != 1
	$where->notEq('id', 1);

	// id > 1
	$where->gt('id', 1);

	// id >= 1
	$where->gte('id', 1);

	// id < 1
	$where->lt('id', 1);

	// id lte('id', 1);

	// Regex pattern => /^us$/
	$where->like('name', 'us');

	// Regex pattern => /^us/
	$where->like('name', '%us');

	// Regex pattern => /us$/
	$where->like('name', 'us%')

	// Regex pattern => /us/
	$where->like('name', '%us%')

	// Opposite of LIKE
	$where->notLike('name', '%us%')
});
```

For example where or:

```
// (id = 10 || name = user1)
$userManager->find(function(Where $where) {
	$where->eq('id', 10);
	$where->orEq('name', 'user1')
})->first();
// ['id' => 1, 'name' => 'user1']

// (id = 10 && name = user1)
$userManager->find(function(Where $where) {
	$where->eq('id', 10);
	$where->eq('name', 'user1')
})->first();
// null
```

##### add(array $value)

[](#addarray-value)

```
$userManager->add(['id' => 3, 'name' => 'user3']);
// true or false
```

##### bulkAdd(array $values)

[](#bulkaddarray-values)

```
$values = [
    ['id' => 4, 'name' => 'user4'],
    ['id' => 5, 'name' => 'user5']
];
$userManager->bulkAdd($values);
// true or false or exception.
```

##### update(array $update, Closure || null $callable)

[](#updatearray-update-closure--null-callable)

```
$bool = $userManager->update(['name' => 'example', 'age' => 20], function(Where $where) {
    $where->eq('id', 1);
});
var_dump($bool) // true || false
// match update data:   ['id' => 1, 'name' => 'example', 'age' => 20]
// unmatch update data: ['id' => 2, 'name' => 'user2']

// item all update.
$bool = $userManager->update(['name' => 'demo', 'age' => 25]);
var_dump($bool) // true || false
// match! update data: ['id' => 1, 'name' => 'demo', 'age' => 25]
// match! update data: ['id' => 2, 'name' => 'demo', 'age' => 25]
```

##### delete(Closure $callable)

[](#deleteclosure-callable)

```
$deleted = $userManager->delete(function(Where $where) {
    $where->eq('id', 1);
});
var_dump($deleted) // true

var_dump($userManager->find(function(Where $where) {
    $where->eq('id', 1);
})->exists());
// false

$deleted = $userManager->delete(function(Where $where) {
    $where->eq('id', 'ff3i0920jwsss');
});
var_dump($deleted) // false

$deleted = $userManager->delete(function(Where $where) {
});
var_dump($deleted) // false
```

##### truncate()

[](#truncate)

Delete all item.

```
$userManager->truncate();
var_dump($userManager->all());
// []
```

#### HashMapDriver

[](#hashmapdriver)

- methods
    - set(string $key, mixed $val)
    - get(string $key)
    - all()
    - has(string $key)
    - delete(string|array $key)
    - truncate()

For example:

```
$connector = new Connector(__DIR__ . '/db');

/** @var Rmtram\SimpleTextDb\Drivers\HashMapDriver $bookManager */
$bookManager = $connector->connection('books', 'hash');
$bookManager->set('dummy1', 'example');
var_dump($bookManager->get('dummy1'));
// 'example'
```

##### set(string $key, mixed $val)

[](#setstring-key-mixed-val)

```
$bookManager->set('dummy1', ['name' => 'dummy1', 'age' => 20]);

// update
$bookManager->set('dummy1', ['name' => 'dummy1', 'age' => 25]);
var_dump($bookManager->get('dummy1'));
// ['name' => 'dummy1', 'age' => 25]
```

##### get(string $key)

[](#getstring-key)

```
$bookManager->set('dummy1', 1);
$bookManager->set('dummy2', 2);

var_dump($bookManager->get('dummy1'));
// 1

var_dump($bookManager->get('none'));
// null

var_dump($bookManager->get(['dummy1', 'dummy2']));
// [1, 2]
```

##### all()

[](#all-1)

```
$bookManager->set('dummy1', 1);
$bookManager->set('dummy2', 2);
$bookManager->set('dummy3', 3);

var_dump($bookManager->all());
// [1, 2, 3]
```

##### has(string $key)

[](#hasstring-key)

```
$bookManager->set('dummy1', 1);

var_dump($bookManager->has('dummy1'));
// true

var_dump($bookManager->has('none'));
// false
```

##### delete(string|array $key)

[](#deletestringarray-key)

```
$bookManager->set('dummy1', 1);
$bookManager->set('dummy2', 2);
$bookManager->set('dummy3', 3);

$deleted = $bookManager->delete(['dummy1', 'dummy2']);

var_dump($deleted);
// true

var_dump($bookManager->all());
// [3]
```

##### truncate()

[](#truncate-1)

```
$bookManager->set('dummy1', 1);
$bookManager->set('dummy2', 2);
$bookManager->set('dummy3', 3);

$bookManager->truncate();

var_dump($bookManager->all());
// []
```

### Util

[](#util)

#### Unique

[](#unique)

- methods
    - id()

##### id()

[](#id)

```
echo Rmtram\SimpleTextDb\Util\Unique::id();
// e.g. microtime() + random string.
// 14615204803576vk9fs8xtiolbah54npy0er7w2m3gq1j
```

Support version
===============

[](#support-version)

- PHP 5.4
- PHP 5.5
- PHP 5.6
- PHP 7
- HHVM

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

3

Last Release

3663d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8d7cbad47788700bb6b0fe45e8431c751d6be5d4cb7806895140c9e38f3bd7b3?d=identicon)[Rmtram](/maintainers/Rmtram)

---

Top Contributors

[![NoguHiro](https://avatars.githubusercontent.com/u/4655005?v=4)](https://github.com/NoguHiro "NoguHiro (4 commits)")

---

Tags

TextDatabasetext databasetext dbtext database mappertext kvs

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/rmtram-simple-text-db/health.svg)

```
[![Health](https://phpackages.com/badges/rmtram-simple-text-db/health.svg)](https://phpackages.com/packages/rmtram-simple-text-db)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.3k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M543](/packages/mongodb-mongodb)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)[wildside/userstamps

Laravel Userstamps provides an Eloquent trait which automatically maintains `created\_by` and `updated\_by` columns on your model, populated by the currently authenticated user in your application.

7511.7M13](/packages/wildside-userstamps)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
