chippyash/identity

1.1.0 2018-07-04 22:34 UTC

This package is auto-updated.

Last update: 2024-09-22 23:15:53 UTC


README

质量保证

PHP 5.6 PHP 7 Build Status Test Coverage Maintainability

查看测试合约

是什么?

提供简单的辅助功能,用于类身份管理

为什么?

这是那种你反复编写的代码之一。许多应用程序需要它们使用的类有一些形式的身份。通常在数据驱动应用程序中,这相当于主键字段 id。这个库提供了对这个的支持。

路线图

如果你需要更多,可以建议,或者更好的是,分支它并提交一个pull request。

查看ZF4 Packages 获取更多包

如何

编码基础

代码以接口和特性提供。只需将你的类声明为实现 Identifiable 接口,然后在类中使用 Identifying 特性来提供功能。

身份基于 Chippyash\Type\Interfaces\TypeInterface。这允许强类型和执行身份规则。例如,这里是一个固定长度数字字符串的产品id的例子。

use Chippyash\Type\String\DigitType;

/**
 * A unique identifier
 */
class Identifier extends DigitType
{
    /**
     * Length of product id, it will be front padded with zeros to this length
     * or cut to this length
     *
     * @var int
     */
    protected $length = 10;

    /**
     * @return int
     */
    public function getLength()
    {
        return $this->length;
    }

    /**
     * @param mixed $value
     *
     * @return string
     */
    protected function typeOf($value)
    {
        $v = parent::typeOf($value);
        if (strlen($v) > $this->length) {
            return substr($v, -$this->length);
        }

        return str_pad($v, $this->length, '0',STR_PAD_LEFT);
    }
}

你的类然后可以简单地这样使用

use Chippyash\Identity\Identifiable;
use Chippyash\Identity\Identifying;

class Product implements Identifiable
{
	use Identifying;
	
	public function __construct(Identifier $id)
	{
		$this->id = $id;
		//or maybe there is some other way of establishing the identity
	}
}

$product = new Product(new Identifier(53));
$id = $product->id(); // returns Identifier
$vId = $product->vId(); //returns '0000000053'
$vId = $product->id()->get(); //returns '0000000053'

更改库

  1. 分支它
  2. 编写测试
  3. 修改它
  4. 提交pull request

发现了无法解决的问题?

  1. 分支它
  2. 编写测试
  3. 提交pull request

注意。在pull request之前,确保你rebase到HEAD

或者 - 提交一个问题票证。

在哪里?

库托管在 Github。它在 Packagist.org 上可用

安装

安装 Composer

生产环境

    "chippyash/identity": ">=1,<2"

开发环境

克隆此仓库,然后在本地仓库根目录中运行Composer以拉取依赖项

    git clone git@github.com:chippyash/identity.git
    cd identity
    composer update

运行测试

    cd identity
    vendor/bin/phpunit -c test/phpunit.xml test/

许可证

此软件库根据 BSD 3 Clause license 发布

此软件库版权所有 (c) 2015,Ashley Kitson,英国

历史

V1.0.0 原始发布

V1.0.1 构建运行更新

V1.0.2 文档更新

V1.0.3 composer.json 修复

V1.0.4 依赖更新

V1.1.0 许可证从GPL V3更改为BSD 3 Clause