cloud-castle/collection

Production-ready PHP 8.1+ package (CloudCastle Collection).

Maintainers

Package info

gitverse.ru/cloud-castle/collection

Homepage

Issues

Documentation

pkg:composer/cloud-castle/collection

Transparency log

Statistics

Installs: 10

Dependents: 3

Suggesters: 0

v1.1.0 2026-07-19 11:44 UTC

This package is auto-updated.

Last update: 2026-07-19 18:54:38 UTC


README

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

CloudCastle Collection

CloudCastle Collection

Packagist Version Downloads PHP Version License

Иммутабельная флюентная коллекция для PHP 8.1+: 112 методов в стиле Laravel Collection (map, filter, reduce, pluck, groupBy, flatten и др.), строгая типизация и иммутабельность по умолчанию. Нулевые внешние зависимости.

Установка

composer require cloud-castle/collection

Требуется PHP 8.1+.

Быстрый старт

<?php

use CloudCastle\Collection\Collection;

$result = (new Collection([1, 2, 3, 4, 5, 6]))
    ->map(fn (int $x): int => $x * 2)      // [2,4,6,8,10,12]
    ->filter(fn (int $x): bool => $x % 3 === 0)  // [6,12]
    ->values()
    ->all();

// Исходная коллекция не мутирует — каждый шаг возвращает новый экземпляр.
$users = new Collection([
    ['name' => 'Ann', 'role' => 'admin'],
    ['name' => 'Bob', 'role' => 'user'],
]);
$byRole = $users->groupBy('role');
$names = $users->pluck('name')->all();     // ['Ann', 'Bob']
$admin = $users->firstWhere('role', 'admin');

Возможности

  • 112 методов в стиле Laravel Collection: map, filter, reduce, pluck, groupBy, flatten, collapse, sort*, chunk, zip и др.
  • Иммутабельность по умолчанию: преобразования возвращают новый экземпляр, исходная коллекция неизменна — безопасно для разделяемого состояния.
  • Строгая типизация: firstOrFail / sole бросают исключение вместо тихого null; предсказуемые типы возврата (static).
  • Нулевые внешние зависимости — в отличие от illuminate/collections, тянущего контракты и macroable фреймворка.

Сравнение с аналогами

Все таблицы ниже сгенерированы автоматически из честных сравнительных тестов (benchmarks/compare.php) на ОДИНАКОВОЙ операции для всех аналогов, PHP 8.1.34, без Xdebug.

1. Функциональность

Возможность🏆 CloudCastleilluminatedoctrineramseyloophparray_*¹
Флюентный конвейер map/filter/reduce
Богатый набор (pluck/groupBy/flatten, 100+ методов)
Иммутабельность по умолчанию
Строгий отказ (firstOrFail/sole)
Нулевые внешние зависимости
Всего🏆 542232

2. Безопасность и корректность

Свойство🏆 CloudCastleilluminatedoctrineramseyloophparray_*¹
Иммутабельность (map не мутирует источник)
Строгий отказ вместо тихого null
Без зависимости от фреймворка
Предсказуемый тип возврата (static)
Всего🏆 432232

3. Производительность

Конвейер map→filter→values над 100 элементами, 100 000 раз (минимум из 4).

РешениеВремя (мс)Итог
array_*¹997,2базовый уровень (не библиотека)
🏆 CloudCastle1 105,2быстрейшее среди библиотек
doctrine1 169,9аналог
illuminate1 427,8аналог
ramsey4 710аналог
loophp7 782,2аналог

4. Потребление памяти

Пик памяти на 100 000 конвейеров (изолированный процесс).

РешениеПиковая память (KB)Итог
🏆 doctrine6 991быстрейшее среди библиотек
ramsey6 991аналог
array_*¹6 991базовый уровень (не библиотека)
CloudCastle7 003аналог
loophp7 046аналог
illuminate7 192аналог

¹ Базовый уровень (нативные вызовы/примитивы без полноты решения) показан для контекста и не претендует на победу среди библиотек-аналогов.

Разработка

composer install
composer check    # линтеры + статический анализ + тесты
composer fix      # автоисправления (Rector, PHP CS Fixer, PHPCBF)
composer ci       # полный CI-пайплайн локально

Полный список команд с описаниями: composer run-script --list.

Документация

Лицензия

MIT © CloudCastle (alex-4-17@yandex.ru)

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano