net_bazzline / php_component_database_file_storage
本地文件数据库
0.7.1
2016-08-11 20:05 UTC
Requires
- php: >=5.4.0
- net_bazzline/component_lock: 2.1.*
- net_bazzline/php_component_csv: 1.5.*
- net_bazzline/php_component_toolbox: 1.9.*
- ramsey/uuid: 3.3.*
Requires (Dev)
- mikey179/vfsstream: 1.6.*
- mockery/mockery: >=0.9.4
- phpunit/phpunit: ~4.8||~5.5
README
crud 存储接口
/** * @param $data * @return mixed - unique identifier */ public function create($data); /** * @return array */ public function readMany(); /** * @return null|mixed - nothing or data */ public function readOne(); /** * @param mixed $data * @return boolean */ public function update($data); /** * @return boolean */ public function delete(); /** * @param mixed $key * @param mixed $value * @return $this */ public function filterBy($key, $value); /** * @param mixed $id * @return $this */ public function filterById($id); /** * @param int $count * @param null|int $offset * @return $this */ public function limitBy($count, $offset = null);
安装
手动
mkdir -p vendor/net_bazzline/php_component_database_file_storage
cd vendor/net_bazzline/php_component_database_file_storage
git clone https://github.com/bazzline/php_component_database_file_storage .
通过 Packagist
composer require net_bazzline/php_component_database_file_storage:dev-master
优势
- 实现了 锁定 以防止多次读写
API
API 可在 bazzline.net 上找到。
未来改进
- 扩展 "filterBy"
- $key 和 $value 是可选的,可以按键或值进行过滤
- 参考 bigdump
- 参考 reactphp/filesystem
- 参考 文件包装器
- 实现 "modifier",以便在读取或写入之前轻松修改数据
- 如果触发写入(创建/读取)操作,则创建一个 *.lock 文件以防止多次写入
- 或者使用 flock
- 通过代理实现缓存
- 简单的两个文件存储注入
- 如果更改的项目数量达到限制,则将缓存写入实际存储
- 使用 uuid 生成器生成唯一键
- 使用 临时文件
- 更专业一点,使用 php://temp
- 实现一种“智能”缓存,通过计算条目的平均大小来确定在刷新缓存之前的最大条目数
历史
- 即将推出
- @todo
- 添加了对 7.0 以上 PHP 版本的支持
- 放弃了低于 5.6 的 PHP 版本的支持
- 0.7.1 - 发布于 2016 年 8 月 11 日
- 更新了 phpunit
- 0.7.0 - 发布于 2016 年 3 月 29 日
- 添加了 API 部分
- 将 PHP 版本提升到 5.4
- 迁移到 psr-4 自动加载
- 更新了依赖项
- 0.6.5 - 发布于 2015 年 12 月 18 日
- 更新了依赖项
- 0.6.4 - 发布于 2015 年 12 月 11 日
- 更新了依赖项
- 0.6.3 - 发布于 2015 年 11 月 18 日
- 更新了依赖项
- 0.6.2 - 发布于 2015 年 9 月 13 日
- 稳定了依赖项
- 0.6.1 - 发布于 2015 年 9 月 12 日
- 添加了受保护的 getIdGenerator、getLockableWriterFactory、getReaderFactory 和 getStorage 方法,以便通过使用默认工厂轻松创建自己的存储
- 0.6.0 - 发布于 2015年9月12日
- 修复了在使用限制时的 readMany 问题
- 0.5.0 - 发布于 2015年9月12日
- 添加了示例 has
- 添加了方法 has($atLeast = 1, $atMost = null)
- 将可选参数 resetRuntimeProperties(filters 和 limit 设置)添加到 create、readMany、readOne、update 和 delete
- 0.4.1 - 发布于 2015年9月11日
- 适应了来自 toolbox 的新 Experiment
- 0.4.0 - 发布于 2015年9月11日
- 将代码移动到目录中(Storage 和 IdGenerator)
- 将 Repository 重命名为 Storage
- 0.3.4 - 发布于 2015年9月10日
- 修复了 LockableWriterForPhp5Dot3 中的问题
- 0.3.3 - 发布于 2015年9月10日
- 修复了 LockableWriterForPhp5Dot3 中的问题
- 0.3.2 - 发布于 2015年9月10日
- 修复了处理 php 5.3 时的问题
- 0.3.1 - 发布于 2015年9月10日
- 修复了损坏的单元测试
- 0.3.0 - 发布于 2015年9月10日
- 创建并使用自有的
LockableWriter
以从 "FileNameLock" 切换到 "FileHandlerLock"
- 创建并使用自有的
结束语
如果你喜欢它,请给它加星标 :-). 如果需要它,请提交问题。如果你喜欢它,请拉取补丁。如果你使用它,请写一篇博客。如果你喜欢它,请捐赠 :-]。