chippyash/record-status

1.0.2 2018-01-09 18:15 UTC

This package is auto-updated.

Last update: 2024-09-22 23:03:51 UTC


README

质量保证

PHP 5.6 PHP 7 Build Status Test Coverage Maintainability

查看测试合同

是什么?

提供了一种简单的辅助功能,用于管理记录或类状态

为什么?

在处理数据库记录时,通常存在一种情况,即永远不要删除记录。这可能是因为你不想丢失数据,或者你需要它在原地以确保与其他数据的引用完整性。

这个小型库提供了接口和特质,可以为任何类添加状态功能。

路线图

如果你想要更多,可以建议,或者更好的是,分叉它并提供一个拉取请求。

查看更多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();

更改库

  1. 分叉它
  2. 编写测试
  3. 修改它
  4. 发起一个拉取请求

发现了一个无法解决的错误?

  1. 分叉它
  2. 编写测试
  3. 发起一个拉取请求

注意。在发起拉取请求之前,请确保将你的分支变基到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 修正错别字