mnapoli/blackbox
Composer 安装命令:
composer require mnapoli/blackbox
包简介
README 文档
README
| currentMenu | home |
|---|
BlackBox
BlackBox is a storage library that abstracts backends and data transformation behind simple interfaces.
Store data. "Where" and "how" can be decided later.
Experimental: this project is still at the state of experimentation. Use with caution.
Usage
The API is defined by interfaces and is extremely simple.
namespace BlackBox; interface Storage extends Traversable { public function get(string $id); public function set(string $id, $data) : void; public function remove(string $id) : void; } $storage->set('foo', 'Hello World!'); echo $storage->get('foo'); // Hello World! foreach ($storage as $key => $item) { echo $key; // foo echo $item; // Hello World! }
You can read all about those interfaces in the Interfaces documentation.
Features
BlackBox can store data in:
- files
- database (MySQL, PostgreSQL, SQLite, Oracle, …) using Doctrine DBAL
- PHP arrays (i.e. in memory)
Data can optionally be:
- stored in JSON
- stored in YAML
- encrypted with AES
Additionally a storage can be cached with another (e.g. cache a DB storage with a Redis or array storage).
Backends
Backends are classes that implement Storage:
FileStorageDirectoryStorageDatabaseTableArrayStorage
You can read all about backends in the Backends documentation.
Transformers
Transformers transform data before storage and after retrieval:
JsonEncoderYamlEncoderObjectArrayMapperAesEncrypter
You can read all about transformers in the Transformers documentation.
// Encode the data in JSON $storage = new JsonEncoder( // Store data in files new DirectoryStorage('some/directory') ); $storage->set('foo', [ 'name' => 'Lebowski', ]); // will encode it in JSON // then will store it into a file $data = $storage->get('foo'); // will read from the file // then will decode the JSON echo $data['name']; // Lebowski
License
BlackBox is released under the MIT license.
统计信息
- 总下载量: 68
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-09-23