Download the PHP package hanneskod/yaysondb without Composer
On this page you can find all versions of the php package hanneskod/yaysondb. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package yaysondb
Yaysondb
Flat file db in pure php.
Why?
Partly as a learning exercise, partly since I needed a simple and PHP only DB for some cli scripts.
Features
- Powerfull searches using search documents
- Supports limits, ordering and custom filtering expressions
- Multiple filesystem support through Flysystem
- Simple transaction support
- Validates that source has not been altered before writing
- Fast logging with the dedicated LogEngine
Installation
Usage
Setup
Yaysondb
works as a handler for multiple collections.
Access collection
through property or
collection()
Create
Transactions
Commit or rollback changes using commit()
, reset()
and inTransaction()
Concurrency protection
Yaysondb supports limited concurrency protection when using the flysystem engine. A hash of the backend file is calculated at each read and any write action will fail if the hash has changed.
Read
Create search documents using the Operators
class.
The search document
The following operators are available when creating search documents:
Operator | Description |
---|---|
doc(array $query) |
Evaluate documents and nested subdocuments |
not(Expr $e) |
Negate expression |
exists() |
Use to assert that a document key exists |
type($type) |
Check if operand is of php type |
in(array $list) |
Check if operand is included in list |
regexp($reg) |
Check if operand matches regular expression |
equals($op) |
Check if operands equals each other |
same($op) |
Check if operands are the same |
greaterThan($op) |
Check if supplied operand is greater than loaded operand |
greaterThanOrEquals($op) |
Check if supplied operand is greater than or equals loaded operand |
lessThan($op) |
Check if supplied operand is less than loaded operand |
lessThanOrEquals($op) |
Check if supplied operand is less than or equals loaded operand |
all(Expr ...$e) |
All contained expressions must evaluate to true |
atLeastOne(Expr ...$e) |
At least one contained expressions must evaluate to true |
exactly($c, Expr ...$e) |
Match exact number of contained expressions evaluating to true |
none(Expr ...$e) |
No contained expressions are allowed evaluate to true |
one(Expr ...$ex) |
Exactly one contained expressions must evaluate to true |
listAll(Expr $e) |
Expression must evaluate to true for each list item |
listAtLeastOne(Expr $e) |
Expression must evaluate to true for at least one list item |
listExactly($c, Expr $e) |
Expression must evaluate to true for exact numer of items in list |
listNone(Expr $e) |
Expression is not allowed to evaluate to true for any list item |
listOne(Expr $e) |
Expression must evaluate to true for exactly one list item |
Update
Collection::update()
takes two arguments. A search document and an array
of values. Documents matching the search document are updated with the supplied
values.
Delete
Collection::delete()
takes a search document as sole argument. Documents
matching the search document are removed.