Download the PHP package micoli/elql without Composer
On this page you can find all versions of the php package micoli/elql. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package elql
Micoli\Elql
A flat database manager. Each models are read/persisted in a (YAML
|JSON
) file.
That library is based upon symfony/serializer
and symfony/expression-language
components. So basically, every model that can be serialized/deserialized by those components wan be used.
When select
ing, updat
ing, delet
ing records, each constraints are expressed as an expression-language
string.
A record
object is available in the constraint expression and represent the evaluated record.
Installation
This library is installable via Composer:
Requirements
This library requires PHP 8.0 or later.
Project status
While this library is still under development, it is still in early development status. It follows semver version tagging.
Quick start
Create an instance of Elql manager
Database are per directory. all models are persisted in a separate file.
The persisted records are loaded in memory before each CRUD action if they were not already loaded.
Record in memory addition
Add some record of proper serializable model.
Basic crud function are available
Select
`
Update
An updater callback is used to help case/case model updates
Delete
Count
You need to flush the in-memories tables to disk to persist them
Attributes
Table($name)
Instead of using the class-name as filename, you can specify a specific name using that attribute.
N.B.:
if you don't want to use that attribute, you can specify some filenames in the MetadataManager
constructor.
In that was, when Foo
records will be persisted, the filename will be foo_table.yaml
.
Unique($expression, $indexName)
Before adding a record to a model table, the unique constraints are evaluated to guarantee uniqueness of records.
A Micoli\Elql\Exception\NonUniqueException
are triggered in case of a constraint is not respected.
All versions of elql with dependencies
symfony/expression-language Version ^7.0
symfony/filesystem Version ^7.0
symfony/lock Version ^7.0
symfony/property-access Version ^7.0
symfony/property-info Version ^7.0
symfony/serializer Version ^7.0
symfony/yaml Version ^7.0
doctrine/annotations Version ^2.0