-
-
Notifications
You must be signed in to change notification settings - Fork 0
Features
github-actions[bot] edited this page Jul 16, 2026
·
1 revision
Один класс Collection — ~85 методов, сгруппированных в шесть семейств. Каждое разобрано
на отдельной странице — с принципом работы, плюсами и минусами, рекомендациями и
антипаттернами.
mindmap
root((Collection))
Доступ и проверки
first / last / get
firstOrFail / sole
contains строгий
has / every / some
Трансформация
map / flatMap / pluck
filter / reject / where*
unique типобезопасный
flatten / collapse
Срезы и группировка
chunk / split / partition
groupBy / keyBy / countBy
take / skip / nth
Объединение
merge / union / combine
zip / crossJoin
diff / intersect строгие
Агрегация
sum / avg / median / mode
sortBy по Шварцу
reduce
Безопасность
Строгая семантика ===
Строка — не код
JSON fail-safe
| Раздел | Что внутри |
|---|---|
| 🔎 Доступ и проверки |
first/last/get, firstOrFail/sole, строгие contains/search, has/every/some
|
| 🔁 Трансформация и фильтрация |
map/flatMap/pluck, filter/reject, where-семейство, типобезопасный unique, flatten
|
| ✂️ Срезы и группировка |
chunk/split/partition, groupBy/keyBy/countBy, take*/skip*/nth
|
| 🔗 Объединение множеств |
merge/union/combine/concat, zip/crossJoin, строгие diff*/intersect*
|
| 📊 Агрегация и сортировка |
sum/avg/median/mode, reduce, sortBy по Шварцу, implode/join
|
| 🛡️ Строгая семантика и JSON |
=== во всех сравнениях, строка-как-данные, fail-safe toJson/fromJson, мутаторы и higher-order |
-
Строгость по умолчанию — все операции сравнения используют
===:contains('1')не находит1,uniqueне схлопывает1/'1'/true. Ловушки type juggling исключены по построению. -
Строка из данных — данные —
contains('system')ищет значение,groupBy('trim')извлекает поле; имя функции, пришедшее извне, никогда не выполняется. -
JSON fail-safe —
toJson()бросает исключение вместо тихогоfalse,fromJson()валидирует вход и клэмпит глубину. -
Скорость через C-реализации — замыкания без параметра ключа уходят в
array_map/array_filter/array_reduce, выборки по полю — вarray_column,sortBy— преобразование Шварца. - Ноль зависимостей — только PHP 8.1+.
-
Открыт для наследования — protected-хелперы (
dataGet,hashValue,valueResolver…) — зафиксированный тестами контракт для дочерних коллекций.
CloudCastle Collection · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)