cloudcastle/support 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cloudcastle/support

Composer 安装命令:

composer require cloudcastle/support

包简介

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

README 文档

README

Version PHP Version License Total Downloads Monthly Downloads Packagist Stars Dependents Suggesters Security Advisories

Quality CodeQL GitHub Stars GitHub Forks GitHub Issues Latest Release Last Commit Contributors

Coverage Mutation MSI OpenSSF Scorecard OpenSSF Best Practices PHPStan Psalm Code Style

Строковые и массивные утилиты + хелперы потока для PHP 8.1+. Корректны для UTF-8, быстры и без утечек памяти. Функциональный суперсет пяти популярных библиотек в одном пакете с единым API.

Установка

composer require cloudcastle/support

Требуется PHP 8.1+. Единственная runtime-зависимость — собственный cloudcastle/inflector (инфлексия; сам не имеет зависимостей — экосистема полностью самодостаточна).

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

<?php

use CloudCastle\Support\Str;
use CloudCastle\Support\Arr;
use CloudCastle\Support\Helpers;

// Строки: форматы имён (UTF-8), срезы, маскирование
Str::studly('foo_bar_baz');            // 'FooBarBaz'
Str::camel('foo_bar_baz');             // 'fooBarBaz'
Str::snake('fooBarBaz');               // 'foo_bar_baz'
Str::headline('user_profile');         // 'User Profile'
Str::between('«ключ»', '«', '»');      // 'ключ'  (корректно по символам)
Str::mask('4111111111111111', '*', 0, 12); // '************1111'
Str::plural('category');               // 'categories'
Str::isUuid('e2b0dd0e-9f8a-4c1e-8b2a-1234567890ab'); // true

// Массивы: точечная нотация
$config = ['app' => ['db' => ['host' => 'localhost']]];
Arr::get($config, 'app.db.host');      // 'localhost'
Arr::has($config, 'app.db.port');      // false
Arr::dot($config);                     // ['app.db.host' => 'localhost']
Arr::pluck([['id' => 1], ['id' => 2]], 'id'); // [1, 2]

// Хелперы потока
Helpers::retry(3, static fn (): string => callExternalApi());
Helpers::blank('  ');                  // true
Helpers::tap($user, static fn ($u) => $u->save());

Возможности

  • Форматы имёнstudly/camel/snake/kebab/title/headline с корректной многобайтовой обработкой.
  • Регистр UTF-8lower/upper/ucfirst/lcfirst через mb_* с ASCII fast-path (в разы быстрее на идентификаторах).
  • Поиск и срезыafter/before/between, contains/startsWith/endsWith, limit/wordCount/squish, padLeft/padRight/padBoth.
  • Маскирование и генерацияmask (сокрытие ПД: карт, счетов, телефонов), random (безопасная алфавитно-цифровая строка на random_bytes).
  • Инфлексияplural/singular (через собственный cloudcastle/inflector).
  • ПредикатыisJson/isUuid/isAscii.
  • Массивыget/set/has/forget (точечная нотация), only/except/pluck, flatten/collapse/dot/undot, first/last/where/prepend.
  • Хелперы потокаtap/with/value/blank/filled/retry/dataGet/dataSet.

Функционально пакет покрывает возможности пяти сравниваемых аналогов вместе взятых: illuminate/support, symfony/string, nette/utils, voku/stringy, doctrine/inflector.

Возможности против аналогов

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

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

Форматы имён

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
StudlyCase / PascalCase ⚠️ ⚠️ Паритет
camelCase Паритет
snake_case ⚠️ Паритет
kebab-case Паритет
Title / headline ⚠️ ⚠️ Паритет

Регистр (UTF-8)

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
lower / upper (mb) Паритет
ucfirst / lcfirst (mb) Паритет
ASCII fast-path (перф) Support

Поиск, срезы, дополнение

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
after / before / between ⚠️ Паритет
contains / startsWith / endsWith Паритет
limit / wordCount / squish ⚠️ ⚠️ ⚠️ Support, illuminate
padLeft / padRight / padBoth (mb) ⚠️ Паритет

Маскирование и генерация

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
mask (сокрытие ПД, mb) Support, illuminate
random (алфавитно-цифровой) Паритет

Инфлексия (число)

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
plural / singular Паритет

Предикаты

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
isJson Паритет
isUuid Support, illuminate
isAscii Паритет

Массивы (точечная нотация)

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
get / set / has / forget («a.b.c») ⚠️ Support, illuminate
only / except / pluck ⚠️ Support, illuminate
flatten / collapse / dot / undot ⚠️ Support, illuminate

Хелперы потока

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
tap / with / value Support, illuminate
blank / filled Support, illuminate
retry (повтор с предикатом) Support, illuminate

Зависимости и безопасность

Функция Support illuminate symfony nette voku doctrine 🏆 Победитель
Runtime-зависимости (меньше — лучше) ⚠️ ⚠️ symfony, nette, doctrine
Единый API: строки + массивы + хелперы ⚠️ Support, illuminate
Без роста памяти (bounded, нет кэш-утечки) Support (vs illuminate)

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

Изолированные замеры без Xdebug (composer compare), эквивалентные операции. Метрика — ops/sec (больше — лучше); «—» — операция не поддерживается.

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

Сценарий cloudcastle/support illuminate/support voku/stringy symfony/string doctrine/inflector nette/utils 🏆 Победитель
StudlyCase (foo_bar_baz → FooBarBaz) 14993044 ops/s 11600896 ops/s 252956 ops/s cloudcastle/support
camelCase (foo_bar_baz → fooBarBaz) 16474093 ops/s 13070439 ops/s 282354 ops/s 333785 ops/s cloudcastle/support
snake_case (fooBarBaz → foo_bar_baz) 11758632 ops/s 9624378 ops/s 430024 ops/s cloudcastle/support
Плюрализация (category → categories) 14847094 ops/s 1006287 ops/s 12246143 ops/s cloudcastle/support
Точечный доступ (Arr::get "a.b.c") 2783953 ops/s 1354903 ops/s cloudcastle/support
Уплощение в точечные ключи (Arr::dot) 2066770 ops/s 2015717 ops/s cloudcastle/support
Рекурсивное уплощение (Arr::flatten) 1639617 ops/s 1462092 ops/s 1059823 ops/s cloudcastle/support
Выборка столбца (Arr::pluck) 8699168 ops/s 924049 ops/s cloudcastle/support
Фильтр ключей (Arr::only) 5694527 ops/s 5632206 ops/s cloudcastle/support
Проверка пустоты (Helpers::blank) 13976355 ops/s 15923705 ops/s illuminate/support
Точечное чтение значения (Helpers::dataGet) 2655295 ops/s 1466155 ops/s cloudcastle/support

Полное сравнение по каждой возможности — в Wiki: Сравнение.

Заключение: когда что выбирать

Сильные стороны cloudcastle/support — единый API строк, массивов и хелперов потока, корректный для UTF-8 на всех операциях, с прицелом на финтех-безопасность: mask для сокрытия ПД, random на random_bytes, срезы по символам (не по байтам). Все горячие пути работают с ограниченной памятью — в отличие от illuminate/support, где статический $studlyCache растёт без ограничений (на разнообразном вводе это утечка памяти).

Производительность: supportпобедитель почти во всех сценариях таблицы выше (см. графу «🏆 Победитель»). Case-конверсия (studly/camel/snake/kebab) — в ~1.3–1.7× быстрее illuminate/support благодаря ограниченному (bounded) кэшу; плюрализация — на порядок быстрее illuminate и обгоняет doctrine/inflector напрямую; массивные операции (Arr::get, dot, flatten, pluck, only) и хелперы (dataGet) — быстрее illuminate (pluck — в ~9×). Ключевое отличие: кэш ограничен по размеру и сбрасывается, тогда как неограниченный $studlyCache в illuminate на разнообразном вводе течёт памятью. voku/stringy и symfony/string support обгоняет на всех сценариях. Прежнее исключение — nette/utils на точечном доступе — снято: его API требует массив ключей (['a','b','c']), тогда как support принимает строку 'a.b.c' — эргономичнее ценой разбора.

Слабые стороны — пакет молодой; для сложной лингвистики (склонение не-английских слов) инфлексия ограничена возможностями doctrine/inflector; коллекции вынесены в отдельный пакет cloudcastle/collection (этот пакет — статические утилиты, не цепочечные объекты).

Честные рекомендации:

  • Единый набор утилит без тяжёлых зависимостей фреймворкаcloudcastle/support.
  • Экосистема Laravel целикомilluminate/support (тянет пол-фреймворка, но нативен для Laravel).
  • Объектные цепочки и трансформация Unicodesymfony/string или voku/stringy.
  • Только инфлексия английскогоdoctrine/inflector напрямую.
  • Разнородные утилиты Nette-проектаnette/utils.

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

Качество

Пакет придерживается production-стандартов: строгая типизация, полный статический анализ (PHPStan max, Psalm level 1, PHPMD, Deptrac, Rector), покрытие тестами 100 % на каждый файл и мутационное тестирование (Infection MSI 100 %). Матрица CI — PHP 8.1–8.5.

composer ci        # полный пайплайн качества
composer check     # быстрые проверки перед коммитом
composer test      # тесты (unit + integration + security + load + performance)
composer compare   # сравнение производительности с аналогами

Контакты

Поддержать проект

Реквизиты для поддержки автора — в DONATE.md.

Contributors

Спасибо всем, кто вносит вклад в проект:

Список ведётся по спецификации all-contributors.

Лицензия

MIT © CloudCastle

cloudcastle/support 适用场景与选型建议

cloudcastle/support 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 07 月 15 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「support」 「php8」 「cloudcastle」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 cloudcastle/support 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 cloudcastle/support 我们能提供哪些服务?
定制开发 / 二次开发

基于 cloudcastle/support 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-15