mittax / objectcollection

一个用于处理PHP对象列表的非常简单的库

0.1.0 2016-12-20 13:58 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:03:43 UTC


README

帮助您使用PHP >=7.0构建类型化列表

安装

composer require mittax/objectcollection

用法

创建一个objectCollectionAbstract子类,通过构造函数添加一个对象列表到集合中

这里是一个示例抽象。进一步查看Tests。有一些基本用法被记录在文档中

<?php
/**
 * Created by PhpStorm.
 * User: pboethig
 * Date: 14.12.16
 * Time: 20:10
 */

namespace Mittax\MediaConverterBundle\Collection;
use Mittax\ObjectCollection\CollectionAbstract;

/**
 * Class StorageItem
 * @package Mittax\MediaConverterBundle\Collection
 */
class StorageItem extends CollectionAbstract
{

    /**
     * StorageItem constructor.
     * @param \Mittax\MediaConverterBundle\Entity\Storage\StorageItem[] $items
     */
    public function __construct(Array $items)
    {
        parent::__construct();

        foreach ($items as $item)
        {
            $this->add($item);
        }
    }

    /**
     * @param $filename
     * @return \Mittax\MediaConverterBundle\Entity\Storage\StorageItem[]
     */
    public function filterByFilename( string $filename) : Array
    {
        return $this->filterByPropertyNameAndValue('filename', $filename);
    }

    /**
     * @return \Mittax\MediaConverterBundle\Entity\Storage\StorageItem
     */
    public function getFirstItem() : \Mittax\MediaConverterBundle\Entity\Storage\StorageItem
    {
        return parent::getFirstItem();
    }

    /**
     * @return \Mittax\MediaConverterBundle\Entity\Storage\StorageItem[]
     */
    public function getAllItems() : Array
    {
        return parent::getAllItems();
    }
}

使用抽象

实例化您的抽象子类,并将包含您的对象的数组传递给构造函数。得到的集合是您上下文中的类型

        $items = [$fileStorageItem, $fileStorageItem1, $fileStorageItem1];

        $collection = new Collection\StorageItem($items);

        $collection->filter($fileStorageItem->getFilename());

结果是类型为StorageItem的类型化列表

运行测试

phpunit