lotos/collection

2.0.0 2022-03-04 10:07 UTC

This package is auto-updated.

Last update: 2024-04-05 13:31:39 UTC


README

Установка

composer require lotos/collection

Примеры использования

Создание коллекции

$collection = new Collection;
$collection->push($item); //mixed $item
$collection = new Collection($item); //mixed $item

Предупреждение

В случае если вы наследуетесь от коллекции, и у наследника есть метод автоматического заполнения. Ни в коем случае нельзя вызывать этот метод в конструкторе. Это ограничение связано с тем, что при вызове фильтрующих методов типа where и его аналогов, коллекция пересоздается заново, следовательно после выполнения фильтрации, созданная вновь коллекция будет автоматически заполнена данными.

Документацию по большинству методов класса можно прочитать на страницах https://www.php.net/manual/ru/class.ds-sequence.php https://www.php.net/manual/ru/class.ds-collection.php

Дополнительные методы коллекции

/**
 * возвращает чистую коллекцию
 **/
$collection->newInstance()

/**
 * возвращает ArrayIterator коллекции
 **/
$collection->getIterator() : ArrayIterator

/**
 * возвращает количество элементов коллекции 
 **/
$collection->count() : int

/**
 * возвращает коллекцию в json-виде
 **/
$collection->jsonSerialize() : string

/**
 * первым параметром всегда передается название свойства (ключа), по которому будет производиться поиск.
 * вторым аргументом можно передавать знаки >, <, =, >=, <=, <>, !=
 * или (внезапное нарушение стандартов, просто так исторически сложилось)
 * можно передать сразу значение, по которому будет производиться фильтрация
 * если вторым аргументом передан знак, то третьим передаете значение
 * */
$collection->where(...$params) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем массив с двумя числовыми значениями,
 * вернутся все элементы, у которых значение выбранного свойства между значениями элементов массива
 **/
$collection->whereBetween(string $property, array $values) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем массив с возможными значениями, 
 * вернутся все элементы, у которых значение выбранного свойства совпадает со значениями элементов массива
 **/
$collection->whereIn(string $property, array $values) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем массив с возможными значениями, 
 * вернутся все элементы, у которых значение выбранного свойства не совпадает со значениями элементов массива
 **/
$collection->whereNotIn(string $property, array $values) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем строка с возможным значением, 
 * вернутся все элементы, у которых значение выбранного свойства содержит искомое слово
 **/
$collection->whereContain(string $param, string $value) : Collection

/**
 * передаем свойство, по которому нужно провести проверку
 * вернутся все элементы коллекции,
 * у которых это свойство === NULL
 **/
$collection->whereNull(string $property) : Collection

/**
 * передаем свойство, по которому нужно провести проверку
 * вернутся все элементы коллекции,
 * у которых это свойство !== NULL
 **/
$collection->whereNotNull(string $property) : Collection