chippyash / record-status
类状态管理
Requires
- php: >=5.6
- myclabs/php-enum: >=1.5.2,<2
Requires (Dev)
- phpunit/phpunit: >=5.7.9,<6
This package is auto-updated.
Last update: 2024-09-22 23:03:51 UTC
README
质量保证
查看测试合同
是什么?
提供了一种简单的辅助功能,用于管理记录或类状态
为什么?
在处理数据库记录时,通常存在一种情况,即永远不要删除记录。这可能是因为你不想丢失数据,或者你需要它在原地以确保与其他数据的引用完整性。
这个小型库提供了接口和特质,可以为任何类添加状态功能。
路线图
如果你想要更多,可以建议,或者更好的是,分叉它并提供一个拉取请求。
查看更多ZF4 包
如何?
记录可以处于三种状态之一
- active. 活跃的记录可以更改为 suspended 或 defunct
- suspended. 暂停的记录可以更改为 active 或 defunct。你不应该更改暂停记录的属性。
- defunct. 一个 已停用的记录或类无法更改其状态。这与被删除类似,但记录数据保持完整。你不应该更改已停用记录的属性。
虽然库提供了管理记录状态的支持,但你还需要注意,你将需要在类中的其他方法中提供额外的支持来检查状态。
在 docs 目录中,你还可以找到一个示例触发器,你可以在 MySql 或 MariaDb 数据库服务器中使用它来维护状态完整性。
编码基础
记录状态枚举类
Chippyash\RStatus\RecordStatus
类通过使用MyCLabs Enum库提供三种可能的状态作为枚举(器)。
use Chippyash\RStatus\RecordStatus; //create status objects $status = RecordStatus::ACTIVE(); $status = RecordStatus::SUSPENDED(); $status = RecordStatus::DEFUNCT(); //test if status can be changed if ($status->canChange()) { //.... }
为你的类启用RecordStatus
让你的类实现RecordStatusRecordable接口。使用RecordStatusRecording特质作为接口的方便实现。
use Chippyash\RStatus\RecordStatusRecordable; use Chippyash\RStatus\RecordStatusRecording; class MyRecord implements RecordStatusRecordable { use RecordStatusRecording; }
RecordStatusRecording特质提供了一个受保护的$recordStatus
属性以及以下方法
/** * Return the record status * * @return RecordStatus */ public function getStatus(); /** * Set the record status * * @param RecordStatus $status * * @return $this * * @throws RecordStatusException */ public function setStatus(RecordStatus $status); /** * Is record status == active * * @return bool */ public function isStatusActive(); /** * Is record status == suspended * * @return bool */ public function isStatusSuspended(); /** * Is record status == defunct * * @return bool */ public function isStatusDefunct();
更改库
- 分叉它
- 编写测试
- 修改它
- 发起一个拉取请求
发现了一个无法解决的错误?
- 分叉它
- 编写测试
- 发起一个拉取请求
注意。在发起拉取请求之前,请确保将你的分支变基到HEAD。
或者 - 提出一个问题票据。
在哪里?
库托管在Github。它在Packagist.org上可用。
安装
安装Composer
对于生产环境
"chippyash/record-status": ">=1,<2"
对于开发环境
克隆此存储库,然后在本地存储库根目录中运行Composer以拉入依赖项
git clone git@github.com:chippyash/record-status.git cd record-status composer install
要运行测试
cd record-status vendor/bin/phpunit -c test/phpunit.xml test/
许可证
本软件库发布遵循 GNU GPL V3 或更高版本许可协议
本软件库版权所有(c)2017,Ashley Kitson,英国
本软件库提供商业许可,请联系作者。通常情况下,对于值得的公益项目是免费的,但可以绕过GPL许可证的限制,该许可证不允许在商业作品中不受限制地包含此代码。
历史
V1.0.0 原始发布
V1.0.1 构建集成
V1.0.2 修正错别字