lotos / collection
2.0.0
2022-03-04 10:07 UTC
Requires
- php: ^8.0
- php-ds/php-ds: ^1.4.0
This package is auto-updated.
Last update: 2025-03-05 15:24:16 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