aedart/util

此包已被弃用,不再维护。作者建议使用 aedart/athenaeum 包。

此包包含一系列各种实用资源,可以独立使用。

5.1.0 2018-09-12 18:45 UTC

This package is auto-updated.

Last update: 2019-02-20 19:40:57 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

弃用 - Util

包已被 aedart/athenaeum 替换

此包包含一系列各种实用资源,可以独立使用。

内容

如何安装

composer require aedart/util

此包使用 composer。如果您不知道这是什么或它是如何工作的,我建议在尝试使用此包之前先了解一些相关信息。

部分集合

如果您需要创建一个只包含特定元素的实体集合,那么您可能会发现 IPartialCollection 接口和 PartialCollectionTrait 很有用。

示例

在这个例子中,我们创建了一个只能包含整数值的实体集合。

<?php
use \Aedart\Util\Contracts\Collections\PartialCollection;
use Aedart\Util\Traits\Collections\PartialCollectionTrait;

class MyCollection implements PartialCollection
{
    use PartialCollectionTrait;

    public function put($key, $value)
    {
        if(!is_int($value)){
            throw new \Exception(sprintf('Value must be of the type integer, %s given', var_export($value, true)));
        }

        $this->getInternalCollection()->put($key, $value);
    }
    
    public function populate(array $data = []) : void
    {
        // ... Implementation not shown here ...
    }
    
    public function offsetExists($offset)
    {
        // ... Implementation not shown here ...
    }
    
    public function offsetGet($offset)
    {
        // ... Implementation not shown here ...
    }
    
    public function offsetSet($offset, $value)
    {
        // ... Implementation not shown here ...
    }
    
    public function offsetUnset($offset)
    {
        // ... Implementation not shown here ...
    }
}

幕后

PartialCollectionTrait 使用 Illuminate\Support\Collection,并通过 getInternalCollection()setInternalCollection() 方法提供对其的内部访问。

换句话说,您可以选择根据自己的需要形成实体集合,仅暴露您希望的方法。

贡献

您是否发现了缺陷( 错误或设计缺陷 ),或者希望改进?在以下部分,您可能会找到一些有用的信息,说明您可以如何帮助这个项目。无论如何,我都感谢您抽出时间帮助我提高这个项目的成果和整体质量。

错误报告

如果您确信您已经发现了一个错误,那么至少您应该创建一个新的问题。在该特定的问题中,您至少应该描述以下内容;

  • 缺陷所在位置
  • 对缺陷的良好、简短、精确的描述(为什么它是缺陷)
  • 如何复制缺陷
  • 可能的解决方案,以解决缺陷

当时间允许时,我将审查您的问题并对它采取行动。

分支、代码和发送拉取请求

一个好的错误报告可以大大帮助我。尽管如此,如果您可以或愿意自行解决缺陷,以下是您可以这样做的步骤;

  • Fork 此项目
  • 为给定的缺陷修复创建一个新的本地开发分支
  • 编写你的代码/更改
  • 创建可执行的测试用例(证明你的更改是可靠的!)
  • 将你的更改提交并推送到你的分叉仓库
  • 发送带有你的更改的拉取请求
  • 喝一杯啤酒 - 你应得的 :)

一旦我收到你的拉取请求(并且有时间处理),我将审查你的更改并将它们合并到这个项目中。如果没有,我会告诉你为什么我选择不这样做。

致谢

版本控制

此包遵循语义版本控制2.0.0

许可

BSD-3-Clause,请阅读此包中包含的LICENSE文件