Skip to content

Comparison

github-actions[bot] edited this page Jul 16, 2026 · 1 revision

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

Сравнение CloudCastle Collection с аналогами. Таблица возможностей генерируется из tools/features-data.php (composer docs:features), числовые бенчмарки — из composer compare (composer docs:comparison).

Заглушка для дальнейшей разработки: наполните tools/features-data.php реальными возможностями и аналогами, а benchmark_collect() — реальными операциями пакета.

Возможности

Сгенерировано из tools/features-data.php (факты о поддержке). Легенда: ✅ полностью · ⚠️ частично · 🔌 адаптер · ❌ нет · — неприменимо.

Создание

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
make / wrap из любых источников (iterable, Arrayable, скаляр, null) ⚠️ ⚠️ Паритет
times / range (генерация) Паритет
fromJson с fail-safe валидацией (исключение, лимит глубины) ⚠️ Collection

Доступ и поиск

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
first / last / get с default и предикатом ⚠️ ⚠️ Паритет
firstOrFail / sole (контрактные исключения) ⚠️ Collection, illuminate
search строгий по умолчанию ⚠️ ⚠️ Collection

Трансформация и фильтрация

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
map / mapWithKeys / flatMap / pluck ⚠️ ⚠️ Паритет
where-семейство (In / Between / Null / InstanceOf) ⚠️ ⚠️ ⚠️ Collection, illuminate
unique типобезопасный (1 ≠ '1' ≠ true) ⚠️ ⚠️ Collection
Строковый callable в map не получает ключ (нет ловушки intval) Collection

Агрегация и статистика

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
sum / avg / min / max по полю ⚠️ Паритет
median / mode ⚠️ Collection, illuminate
Числовые строки без потери типа и точности ⚠️ ⚠️ Collection

Группировка и разбиение

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
groupBy / keyBy / countBy ⚠️ Паритет
chunk / split / partition (вложенные коллекции) ⚠️ ⚠️ Collection, illuminate

Объединение множеств

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
merge / union / combine / concat / zip / crossJoin ⚠️ Паритет
diff / intersect со строгим сравнением ⚠️ ⚠️ ⚠️ Collection

Безопасность

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
Строгие сравнения по умолчанию (анти type juggling) ⚠️ ⚠️ ⚠️ Collection
Строка из данных никогда не вызывается как функция ⚠️ ⚠️ Collection
toJson бросает исключение вместо тихого false ⚠️ ⚠️ Collection
Zero runtime-зависимостей ⚠️ ⚠️ Collection, aimeos

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

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
C-fast-path для замыканий без ключа (map / filter / reduce) ⚠️ Collection
array_column-путь для pluck / sum по полю Collection, ramsey, aimeos
Schwartzian-сортировка sortBy (n вызовов вместо n·log n) Collection, illuminate

Нагрузка и стабильность

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
Нагрузочные тесты в CI (100k элементов, бюджет памяти) Collection
Перф-бюджеты всех групп методов в CI Collection
Мутационное тестирование (MSI 100%) Collection

Расширяемость

Функция Collection illuminate doctrine ramsey aimeos 🏆 Победитель
Наследование с protected-хелперами (контракт зафиксирован тестами) ⚠️ ⚠️ ⚠️ Collection, ramsey
ArrayAccess + Countable + IteratorAggregate + JsonSerializable ⚠️ ⚠️ Паритет

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

Сгенерировано из composer compare (PHP 8.1.34). Правки в блоке будут перезаписаны.

Сценарий cloudcastle/collection illuminate/collections doctrine/collections ramsey/collection aimeos/map loophp/collection 🏆 Победитель
Создание из массива (100 эл.) 10485760 ops/s 7741425 ops/s 10776732 ops/s 58189 ops/s 7309697 ops/s 162882 ops/s doctrine/collections
map (×100) 217592 ops/s 149494 ops/s 229928 ops/s 26438 ops/s 147828 ops/s 51155 ops/s doctrine/collections
filter (×100) 144179 ops/s 124079 ops/s 124960 ops/s 42030 ops/s 121987 ops/s 15715 ops/s cloudcastle/collection
where поле=значение (×100 структур) 87912 ops/s 11315 ops/s 31897 ops/s 42288 ops/s cloudcastle/collection
pluck поля из структур (×100) 1220339 ops/s 40254 ops/s 41788 ops/s 889830 ops/s cloudcastle/collection
groupBy полю (×100 структур) 75158 ops/s 18844 ops/s 69605 ops/s cloudcastle/collection
sum по полю (×100 структур) 329316 ops/s 25386 ops/s 223732 ops/s cloudcastle/collection
sortBy полю (×100 структур) 66873 ops/s 27390 ops/s 33674 ops/s cloudcastle/collection
unique (×100) 321772 ops/s 317399 ops/s 297937 ops/s cloudcastle/collection
contains строгий (×100) 4930995 ops/s 2927348 ops/s 5092647 ops/s 59065 ops/s 2955400 ops/s 8104 ops/s doctrine/collections
merge двух наборов (100 + 100) 1583832 ops/s 1468902 ops/s 17919 ops/s 1465003 ops/s cloudcastle/collection
chunk по 10 (×100) 474877 ops/s 431406 ops/s 304359 ops/s cloudcastle/collection
first по предикату (×100) 215899 ops/s 208100 ops/s 133213 ops/s 201102 ops/s 15780 ops/s cloudcastle/collection
reduce суммой (×100) 204616 ops/s 102043 ops/s 207366 ops/s 45738 ops/s 200650 ops/s 36209 ops/s doctrine/collections
JSON-цикл (encode + decode, ×100) 142195 ops/s 93062 ops/s 152560 ops/s aimeos/map

Clone this wiki locally