atlcom / helper
Atlcom Helper library
Fund package maintenance!
Yoomoney
Requires
- php: ^8.1
- ext-mbstring: *
- nesbot/carbon: >=2.0
Requires (Dev)
- fakerphp/faker: ^1.23
- phpunit/phpunit: ^10.0
README
Класс помощник для работы со строками, числами, массивами.
История изменений
Установка
composer require atlcom/helper
Описание методов
Array
Работа с массивами
arrayDeleteKeys($value, ...$searches): array
Возвращает массив с удаленными ключами
$array = Helper::arrayDeleteKeys(['a' => 1, 'b' => 2], 'a'); // $array = ['b' => 2]
arrayDeleteValues($value, ...$searches): array
Возвращает массив с удаленными значениями
$array = Helper::arrayDeleteValues(['a', 'b'], 'a'); // $array = [1 => 'b']
arrayDot($value): array
Возвращает одномерный массив из многомерного
$array = Helper::arrayDot(['a' => ['b' => 2, 'c' => 3]]); // $array = ['a.b' => 2, 'a.c' => 3]
arrayExcludeTraceVendor($value, $basePath): array
Исключает из массива трассировки пакетные ошибки
$array = Helper::arrayExcludeTraceVendor(debug_backtrace()); // $array = []
arrayFirst($value, $key): mixed
Возвращает значение первого элемента массива
$mixed = Helper::arrayFirst(['a', 'b']); // $mixed === 'a' $mixed = Helper::arrayFirst(['a' => 1, 'b' => 2]); // $mixed === 1
arrayFlip($value): array
Возвращает массив с заменой местами ключей и значений
$array = Helper::arrayFlip(['a' => 'b']); // $array === ['b' => 'a']
arrayGet($value, $key): mixed
Возвращает значение из массива по имению ключа
$mixed = Helper::arrayGet(['a', 'b'], 0); // $mixed === 'a' $mixed = Helper::arrayGet(['a' => ['b' => 2, 'c' => 3], 'b' => 4], 'a.b'); // $mixed === 2 $mixed = Helper::arrayGet(['a.b' => 1, 'b' => 2], 'a.b'); // $mixed === 1
arrayLast($value, $key): mixed
Возвращает значение последнего элемента массива
$mixed = Helper::arrayLast(['a', 'b']); // $mixed === 'b' $mixed = Helper::arrayLast(['a' => 1, 'b' => 2]); // $mixed === 2
arrayMappingKeys($value, $from, $to): array
Возвращает массив с маппингом ключей
$array = Helper::arrayMappingKeys(['a' => 1, 'b' => 2], 'a', 'c'); // $array = ['c' => 1, 'b' => 2] $array = Helper::arrayMappingKeys([['a' => 1], ['a' => 2]], ['a' => 'c']); // $array = [['c' => 1], ['c' => 2]]
arraySearchKeys($value, ...$searches): array
Возвращает массив найденных ключей в искомом массиве
$array = Helper::arraySearchKeys(['a' => 1, 'b' => 2], 'a'); // $array = ['a' => 1] $array = Helper::arraySearchKeys(['a' => ['b' => 2, 'c' => 3]], '*.b'); // $array = ['a.b' => 2]
arraySearchKeysAndValues($value, ...$keys, ...$values): array
Возвращает массив найденных ключей в искомом массиве
$array = Helper::arraySearchKeys(['a' => 1, 'b' => 2], 'a'); // $array = ['a' => 1] $array = Helper::arraySearchKeys(['a' => ['b' => 2, 'c' => 3]], '*.b'); // $array = ['a.b' => 2]
arraySearchValues($value, ...$searches): array
Возвращает массив найденных ключей в искомом массиве
$array = Helper::arraySearchValues(['a', 'b'], 'a'); // $array = ['a'] $array = Helper::arraySearchValues(['abc', 'def'], ['a*', '*f']); // $array = ['abc', 'def']
arrayTrimValues($value, $trims): array
Возвращает массив с применением trim для каждого значения
$array = Helper::arrayTrimValues([' a ', ',b.,:;']); // $array = ['a', 'b']
arrayUnDot($value): array
Возвращает многомерный массив из одномерного
$array = Helper::arrayUnDot(['a.b' => 2, 'a.c' => 3]); // $array = ['a' => ['b' => 2, 'c' => 3]]
Bracket
Работа со скобками/тегами
bracketChange($value, $left, $right, $index): string
Возвращает строку с заменой содержимого внутри блока скобок под индексом index на строку change
$string = Helper::bracketChange('(a)(b)', '(', ')', 0, 'c'); // $string = '(c)(b)'
bracketCopy($value, $left, $right, $index): string
Возвращает содержимое внутри блока скобок под индексом index
$string = Helper::bracketCopy('(a)(b)', '(', ')', 0); // $string = 'a'
bracketCount($value, $left, $right): int
Возвращает количество блоков скобок
$integer = Helper::bracketCount('(a)(b)', '(', ')'); // $integer = 2
bracketDelete($value, $left, $right, $index): string
Возвращает строку с удалением блока скобок под индексом index
$string = Helper::bracketDelete('(a)(b)', '(', ')', 0); // $string = '(b)'
bracketReplace($value, $left, $right, $index, $replace): string
Возвращает строку с заменой блока скобок под индексом index на строку replace
$string = Helper::bracketReplace('(a)(b)', '(', ')', 0, '(c)'); // $string = '(c)(b)'
bracketSearch($value, $left, $right, $index, ...$searches): array
Возвращает массив найденных строк с индексами блоков скобок
$array = Helper::bracketSearch('(a)(b)', '(', ')', 'a'); // $array = ['a' => [0]]
Cache
Работа с кешем
cacheRuntime($key, $callback, $cacheEnabled): mixed
Сохраняет значение value в кеше по ключу key или возвращает значение при его наличии
Если cacheEnabled выключен, то кеш не используется
$mixed = Helper::cacheRuntime('key', fn () => 1); // $mixed = 1 $mixed = Helper::cacheRuntimeGet('key'); // $mixed = 1
cacheRuntimeClear(): void
Очищает весь кеш
Helper::cacheRuntimeClear(); //
cacheRuntimeDelete($key): void
Удаляет значение из кеша по ключу key
Helper::cacheRuntimeDelete('key'); //
cacheRuntimeExists($key): bool
Проверяет существование ключа в кеше и возвращает true/false
$boolean = Helper::cacheRuntimeExists('key'); // $boolean = false
cacheRuntimeGet($key, $default): mixed
Возвращает значение из кеша по ключу key или возвращает значение по умолчанию default
$mixed = Helper::cacheRuntimeGet('key', 'value'); // $mixed = 'value'
cacheRuntimeSet($key, $value): mixed
Сохраняет значение value в кеше по ключу key
$mixed = Helper::cacheRuntimeSet('key', 'value'); // $mixed = 'value'
Case
Работа со стилем
caseCamel($value): string
Возвращает строку в стиле camelCase
$string = Helper::caseCamel('abc-def'); // $string = 'abcDef'
caseKebab($value): string
Возвращает строку в стиле kebab-case
$string = Helper::caseKebab('abcDef'); // $string = 'abc-Def'
casePascal($value): string
Возвращает строку в стиле PascalCase
$string = Helper::casePascal('abc-def'); // $string = 'AbcDef'
caseSnake($value): string
Возвращает строку в стиле snake_case
$string = Helper::caseSnake('abcDef'); // $string = 'abc_Def'
Cast
Работа с типами
castToArray($value): ?array
Возвращает преобразование значения к массиву или null
$array = Helper::castToArray(1); // $array = [1]
castToBool($value): ?bool
Возвращает преобразование значения к логическому типу или null
$boolean = Helper::castToBool(1); // $boolean = true
castToCallable($value): ?callable
Возвращает преобразование значения к статичной функции с результатом самого значения или null
$callable = Helper::castToCallable(1); // $callable() = 1
castToFloat($value): ?float
Возвращает преобразование значения к вещественному типу или null
$float = Helper::castToFloat(1); // $float = 1.0
castToJson($value): ?string
Возвращает преобразование значения к строке json или null
$json = Helper::castToJson(1); // $json = '"1"'
castToInt($value): ?int
Возвращает преобразование значения к целочисленному типу или null
$integer = Helper::castToInt('1'); // $integer = 1
castToObject($value): ?object
Возвращает преобразование значения к объекту или null
$object = Helper::castToObject(1); // $object = (object)[1]
castToString($value): ?string
Возвращает преобразование значения к строковому типу или null
$string = Helper::castToString(1); // $string = '1'
Color
Работа с цветами
colorHexToRgb($value): array
Возвращает массив с RGB цветом из цвета HEX строки
$array = Helper::colorHexToRgb('#000'); // $array = ['r' => 0, 'g' => 0, 'b' => 0, 'a' => null] $array = Helper::colorHexToRgb('#000000'); // $array = ['r' => 0, 'g' => 0, 'b' => 0, 'a' => null] $array = Helper::colorHexToRgb('#00000000'); // $array = ['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]
colorRgbToHex($red, $green, $blue, $alpha): string
Возвращает HEX строку из RGB цвета
$string = Helper::colorRgbToHex(0, 0, 0); // $string = '#000000' $string = Helper::colorRgbToHex(0, 0, 0, 0); // $string = '#00000000'
Crypt
Работа с шифрованием
cryptArrayDecode($value, $password): array
Дешифрует все значения элементов массива вида 'hash:crypt'
$array = Helper::cryptArrayDecode(['a' => 'hash:crypt']); // $array = ['a' => 1]
cryptArrayEncode($value, $password, $random)
Шифрует все значения элементов массива с добавлением хеша значения 'hash:crypt'
$array = Helper::cryptArrayDecode(['a' => 1]); // $array = ['a' => 'hash:crypt']
cryptDecode($value, $password): string
Дешифрует строку с паролем
$string = Helper::cryptDecode('nh93432NibR3td26', 'password'); // $string = 'abc'
cryptEncode($value, $password, $random): string
Шифрует строку с паролем
$string = Helper::cryptEncode('abc', 'password'); // $string = 'nh93432NibR3td26'
Date
Работа с датами
dateDayName($value): string
Возвращает название дня недели переданного значения
$string = Helper::dateDayName('31.12.2025'); // $string = 'среда'
dateFromString($value): ?Carbon
Возвращает объект Carbon с распознанной датой или null
$date = Helper::dateFromString('в следующий понедельник'); // $date->format('d.m.Y') = 'XX.XX.XXXX' $date = Helper::dateFromString('через 2 месяца'); // $date->format('d.m.Y') = 'XX.XX.XXXX'
dateToString($value, $declension): ?Carbon
Возвращает дату прописью на русском языке с учетом склонения по падежу
$string = Helper::dateToString(Carbon::parse('01.02.2025')); // $string = 'первое февраля две тысячи двадцать пятый год'
Enum
Работа с перечислениями
enumExists($value): bool
Проверяет на существование перечисления по значению и возвращает true/false
$boolean = MyEnum::enumExists('Name1'); // $boolean = true/false
enumFrom($value): ?BackedEnum
Возвращает найденное перечисление по имени, по значению или по перечислению
$enum = MyEnum::enumFrom('Name1'); // $enum = MyEnum::Name1
enumLabel($value): ?string
Возвращает описание перечисления (необходимо реализовать метод enumLabel)
$string = MyEnum::enumLabel(MyEnum::Name1); // $string = 'Name1 (value1)'
enumLabels($value, $label): array
Возвращает список перечислений для ресурса
$array = MyEnum::enumLabels(); // $array = [['value' => 'value1', 'label' => 'Описание 1']]
enumName($value): ?string
Возвращает ключ перечисления
$string = Helper::enumName(MyEnum::Name1); // $string = 'Name1'
enumNames($value): array
Возвращает имена ключей перечисления enum
$array = MyEnum::enumNames(); // $array = ['Name1']
enumRandom($value = null): ?BackedEnum
Возвращает случайное перечисление
$enum = Helper::enumRandom(MyEnum::class); // $enum = MyEnum::Name1
enumToArray($value): array
Возвращает массив ключей и значений enum
$array = MyEnum::enumToArray(); // $array = ['Name1' => 'value1']
enumValue($value): mixed
Возвращает значение перечисления
$mixed = Helper::enumValue(HelperEnumValueEnum::Name1); // $mixed = 'value1'
enumValues($value = null): array
Возвращает значения ключей перечисления enum
$array = MyEnum::enumValues(); // $array = ['value1']
Env
Работа с окружением
envDev(): bool
Проверяет окружение приложения на разработку и возвращает true/false
$$boolean = Helper::envDev(); // $boolean = true/false
envGet($value, $file): mixed
Возвращает значение ключа из файла .env
$mixed = Helper::envDev('APP_ENV', '.env.example'); // $mixed = mixed
envLocal(): bool
Проверяет окружение приложения на локальное и возвращает true/false
$boolean = Helper::envLocal(); // $boolean = true/false
envProd(): bool
Проверяет окружение приложения на боевое и возвращает true/false
$boolean = Helper::envProd(); // $boolean = true/false
envStage(): bool
Проверяет окружение приложения на пред боевое и возвращает true/false
$boolean = Helper::envStage(); // $boolean = true/false
envTest(): bool
Проверяет окружение приложения на тестовое и возвращает true/false
$boolean = Helper::envTest(); // $boolean = true/false
envTesting(): bool
Проверяет окружение приложения на авто-тестирование и возвращает true/false
$boolean = Helper::envTesting(); // $boolean = true/false
Exception
Работа с исключениями
exceptionToArray($value): array
Возвращает исключение в виде массива
$array = Helper::exceptionToArray(new Exception('Exception message', 400)); // $array = ['code': 400, ...]
exceptionToString($value): string
Возвращает исключение в виде строки json
$string = Helper::exceptionToString(new Exception('message', 400)); // $string = '{"code": 400, ...}'
Fake
Работа с генерацией данных
fakeEmail(): string
Возвращает случайно сгенерированный email
$string = Helper::fakeEmail(); // $string = 'abc@asd.ru'
fakeIp4(): string
Возвращает случайно сгенерированный ip адрес v4
$string = Helper::fakeIp4(); // $string = '111.222.33.44'
fakeIp6(): string
Возвращает случайно сгенерированный ip адрес v6
$string = Helper::fakeIp6(); // $string = '2001:0db8:0058:0074:1c60:2c18:1025:2b5f'
fakeName($locale, $surnames, $firstNames, $patronymics): string
Возвращает случайно сгенерированное ФИО
$string = Helper::fakeName(); // $string = 'Иванов Иван Иванович'
fakePassword(): string
Возвращает случайно сгенерированный пароль
$string = Helper::fakePassword(); // $string = 'af3usn5f'
fakePhone(): string
Возвращает случайно сгенерированный номер телефона с/без кодом страны
$string = Helper::fakePhone(); // $string = '79645831465'
fakeUrl($protocols, $domainNames, $domainZones, $paths, $queries, $anchors): string
Возвращает случайно сгенерированный url
$string = Helper::fakeUrl(); // $string = 'http://abc.com/def?a=b#xyz'
fakeUuid4(): string
Возвращает случайно сгенерированный UUID v4
$string = Helper::fakeUuid4(); // $string = 'f1f27725-7a51-4581-a6b8-45f236e50d81'
fakeUuid7(): string
Возвращает случайно сгенерированный UUID v7
$string = Helper::fakeUuid7(); // $string = '019668c4-7b6c-7333-9563-d10b583c4046'
Hash
Работа с хешами
hashXxh128($value): string
Возвращает xxh128 хеш значения
$string = Helper::hashXxh128('abc'); // $string = '06b05ab6733a618578af5f94892f3950'
Interval
Работа с интервалами
intervalAround($value, $min, $max): int
Возвращает число со смещением по кругу в заданном интервале
$integer = Helper::intervalAround(3 + 1, 1, 3); // $integer = 1 $integer = Helper::intervalAround(1 - 1, 1, 3); // $integer = 3
intervalBetween($value, ...$intervals): array
Проверяет значение на вхождение в интервал(ы)
$bool = (bool)Helper::intervalBetween(2, [1, 10]); // $bool = true $bool = (bool)Helper::intervalBetween(12, '1..10, 13..20'); // $bool = false $bool = (bool)Helper::intervalBetween('2025.01.02', '2025.01.01, 2025.01.03..2025.01.04'); // $bool = false $bool = (bool)Helper::intervalBetween('2025.01.02', ['2025.01.01', '2025.01.03']); // $bool = true
intervalCollection(...$intervals): array
Возвращает число со смещением по кругу в заданном интервале
$array = Helper::intervalCollection(1, 3); // $array = [['equal' => 1], ['equal' => 3]] $array = Helper::intervalCollection('1..3'); // $array = [['min' => '1', 'max' => '3']] $array = Helper::intervalCollection([1, 3], 5); // $array = [['min' => 1, 'max' => 3], ['equal' => 5]]
intervalOverlap(...$intervals): array
Проверяет пересечение интервалов
$bool = (bool)Helper::intervalOverlap([1, 3], [2, 4]); // $bool = true $bool = (bool)Helper::intervalOverlap('1..3', '2..4'); // $bool = false
Ip
Работа с ip адресами
ipInRange($value, ...$masks): array
Возвращает массив найденных масок подсетей, в которые входит ip адрес
$array = Helper::ipInRange('192.168.1.1', '192.168.1.0/24'); // $array = ['192.168.1.0/24']
Json
Работа с json строками
jsonFlags(): int
Возвращает флаг для формирования json строки
$integer = Helper::jsonFlags(); // $integer = 3146048
Jwt
Работа с jwt токенами
jwtDecode($value, ...$masks): array
Возвращает массив с данными из декодированного jwt токена
$array = Helper::jwtDecode('eyJhbGciOiJTSEE1MTIiLCJ0eXAiOiJKV1QifQ.eyJpZCI6MX0.l8fbKNjJWSsZLjVfE5aUOpEhIqbMAxIcon8nZ8NYyPikf_AtjrrN0Y3cPTy1A0U3etLMCbZ6RE00FqFYLZBc7A'); // $array = ['header' => ['alg' => 'SHA512', 'typ' => 'JWT'], 'body' => ['id' => 1]]
jwtEncode($value, ...$masks): array
Возвращает строку с jwt токеном из закодированных данных
$string = Helper::jwtEncode(['id' => 1]); // $string = 'eyJhbGciOiJTSEE1MTIiLCJ0eXAiOiJKV1QifQ.eyJpZCI6MX0.l8fbKNjJWSsZLjVfE5aUOpEhIqbMAxIcon8nZ8NYyPikf_AtjrrN0Y3cPTy1A0U3etLMCbZ6RE00FqFYLZBc7A'
Number
Работа с числами
numberCalculate($value, $precision): string
Возвращает строку с результатом калькуляции больших числовых значений в строке
$string = Helper::numberCalculate('1 + 2'); // $string = '3'
numberDecimalDigits($value): int
Возвращает количество знаков дробной части числа
$integer = Helper::numberDecimalDigits(1.123); // $integer = 3
numberFormat($value, $decimals, $separator): string
Возвращает число в виде строки с форматированием
$string = Helper::numberFormat(1000.123); // $string = '1 000,123'
numberFromString($value): int|float
Возвращает число из строки с числом прописью на русском языке
$integer = Helper::numberFromString('сто двадцать три'); // $integer = 123
numberToString($value, $declension, $gender, $enumeration): string
Возвращает число прописью на русском языке с учетом склонения по падежу, роду и числительному перечислению
$string = Helper::numberToString(123.456); // $string = 'сто двадцать три'
Path
Работа с путями
pathClassName($value): string
Возвращает имя класса без namespace
$string = Helper::pathClassName('/test/Test.php'); // $string = 'Test'
pathRoot($value = null): string
Возвращает путь домашней папки
$string = Helper::pathRoot(); // $string = '/home/path'
Phone
Работа с телефонами
phoneFormat($value, $countryNumber, $format): string
Возвращает отформатированный номер телефона
$string = Helper::phoneFormat('79001112233'); // $string = '+7 (900) 111-22-33'
phoneNumber($value, $countryNumber): string
Возвращает только цифры номера телефона
$string = Helper::phoneNumber('+7 (900) 111-22-33'); // $string = '79001112233'
Reflection
Работа с валидацией
reflectionArgumentAttributes($class, $method, $argument): array
Возвращает массив аттрибутов у аргументов метода класса
class Example {public function methodName(#[ExampleAttribute] $paramName)} $array = Helper::reflectionArgumentAttributes(Example::class, 'methodName', 'paramName'); // $array = [['attribute' => [...], 'arguments' => [...], 'instance' => {...}]]
reflectionClassAttributes($class): array
Возвращает массив аттрибутов у класса
#[ExampleAttribute] class Example {} $array = Helper::reflectionClassAttributes(Example::class); // $array = [['attribute' => [...], 'arguments' => [...], 'instance' => {...}]]
reflectionMethodAttributes($class, $method): array
Возвращает массив аттрибутов у методов класса
#[ExampleAttribute] class Example {#[ExampleAttribute] public function methodName($param)} $array = Helper::reflectionMethodAttributes(Example::class, 'methodName'); // $array = [['attribute' => [...], 'arguments' => [...], 'instance' => {...}]]
reflectionPhpDoc($class): array
Возвращает массив с разложенными параметрами из всех phpdoc блоков класса
/** description class*/ class Example { /** @var string */ public string $propertyName /** description method */ public function methodName() {} } $array = Helper::reflectionPhpDoc(Example::class); // $array = [...]
reflectionPropertyAttributes($class, $property): array
Возвращает массив аттрибутов у свойств класса
class Example {#[ExampleAttribute] public string $propertyName} $array = Helper::reflectionPropertyAttributes(Example::class, 'propertyName'); // $array = [['attribute' => [...], 'arguments' => [...], 'instance' => {...}]]
Regexp
Работа с валидацией
regexpValidateAscii($value): bool
Проверяет значение строки на формат ascii (латинский алфавита и цифры)
$boolean = Helper::regexpValidateAscii('0-9 AZ az'); // $boolean = true
regexpValidateDate($value): bool
Проверяет значение строки на формат даты
$boolean = Helper::regexpValidateDate('01.01.2025'); // $boolean = true
regexpValidateEmail($value): bool
Проверяет значение строки на формат электронной почты
$boolean = Helper::regexpValidateEmail('Test.example_1@domain.com'); // $boolean = true
regexpValidateIp4($value): bool
Проверяет значение строки на формат ip адреса v4
$boolean = Helper::regexpValidateIp4('111.222.33.44'); // $boolean = true
regexpValidateIp6($value): bool
Проверяет значение строки на формат ip адреса v6
$boolean = Helper::regexpValidateIp6('2001:0db8:0058:0074:1c60:2c18:1025:2b5f'); // $boolean = true
regexpValidateJson($value): bool
Проверяет значение строки на формат json
Helper::regexpValidateJson('{"a":1}'); // $boolean = true
regexpValidatePattern($value): bool
Проверяет значение строки на формат регулярного выражения
$boolean = Helper::regexpValidatePattern('/test/'); // $boolean = true
regexpValidatePhone($value): bool
Проверяет значение строки на формат номера телефона
$boolean = Helper::regexpValidatePhone('+79001234567'); // $boolean = true
regexpValidateUnicode($value): bool
Проверяет значение строки на формат юникода
$boolean = Helper::regexpValidateUnicode('01 AZ az АЯ ая 😀'); // $boolean = true
regexpValidateUrl($value): bool
Проверяет значение строки на формат url
$boolean = Helper::regexpValidateUrl('http://abc.com/def?klm#xyz'); // $boolean = true
regexpValidateUuid4($value): bool
Проверяет значение строки на формат идентификатора uuid v4
$boolean = Helper::regexpValidateUuid4('04d19f50-2fab-417a-815d-306b6a6f67ec'); // $boolean = true
regexpValidateUuid7($value): bool
Проверяет значение строки на формат идентификатора uuid v7
$boolean = Helper::regexpValidateUuid7('019668a4-02a1-7f64-9d90-52760464b9ce'); // $boolean = true
Size
Работа с размерами
sizeBytesToString($value): string
Возвращает размер в байтах как строку
$string = Helper::sizeBytesToString(1000); // $string = '1 Кб'
sizeStringToBytes($value): string
Возвращает размер в байтах из строки размера
$integer = Helper::sizeStringToBytes('1 Килобайт'); // $integer = 1000
Sql
Работа с sql запросами
sqlBindings($value, $bindings): string
Подставляет значения из массива $bindings вместо плейсхолдеров ? в запросе
$string = Helper::sqlBindings('SELECT * FROM t WHERE a = ?', [1]); // $string = 'SELECT * FROM t WHERE a = 1'
sqlExtractNames($value): array
Возвращает массив разобранного запроса на используемые названия баз данных, таблиц, полей
$array = Helper::sqlExtractNames('SELECT name FROM users', [1]); // $array = ['databases' => ['' => ['tables' => ['users' => ['fields' => ['name']]]]]]
sqlFields($value): array
Возвращает массив используемых названий полей в запросе
$array = Helper::sqlFields('SELECT * FROM users WHERE id = 1 AND active = 0'); // $array = ['users.*', 'users.active', 'users.id']
sqlHasWrite($value): bool
Проверяет запрос на наличие операторов изменения INSERT, UPDATE, DELETE, TRUNCATE
$boolean = Helper::sqlHasWrite('SELECT * FROM users'); // $boolean = false
sqlTables($value): array
Возвращает массив используемых таблиц в запросе
$array = Helper::sqlTables('SELECT * FROM users;'); // $array = ['users']
String
Работа со строками
stringBreakByLength($value, $breakType, $partLengthMax, $firstPartLength): array
Разбивает текст на части указанной длины по словам или строкам и возвращает массив строк
$array = Helper::stringBreakByLength('Иванов Иван Иванович', HelperStringBreakTypeEnum::Word, 10); // $array = ['Иванов', 'Иван', 'Иванович']
stringChange(&$value, $change, $start): string
Заменяет на подстроку в строке с позиции start
$string = Helper::stringChange('abc', 'd', 2); // $string = 'abd' $string = Helper::stringChange('abcefg', 'xyz', -1); // $string = 'abcefxyz'
stringConcat($delimiter, ...$values): string
Соединяет значения values через разделитель delimiter
$string = Helper::stringConcat(' ', 'Иванов', 'Иван', 'Иванович'); // $string = 'Иванов Иван Иванович' $string = Helper::stringConcat(' ', ['Иванов', 'Иван', 'Иванович']); // $string = 'Иванов Иван Иванович'
stringCopy($value, $start, $length): string
Копирует подстроку из строки с позиции start длиной length
$string = Helper::stringCopy('abc', 1, 1); // $string = 'b' $string = Helper::stringCopy('abc', -2); // $string = 'bc'
stringCount($value, ...$searches): string
Возвращает количество найденных вхождений подстрок в строке
$integer = Helper::stringCount('abc', 'a'); // $integer = 1 $integer = Helper::stringCount('abc', ['a', 'b']); // $integer = 2
stringCut(&$value, $start, $length): string
Вырезает подстроку из строки с позиции start длиной length
$source = 'abc'; $string = Helper::stringCut($source, 1, 1); // $source = 'ac', $string = 'b'
stringDelete($value, $start, $length): string
Удаляет из строки с позиции start длиной length
$string = Helper::stringDelete('abc', 1, 1); // $string = 'ac' $string = Helper::stringDelete('abc', -2); // $string = 'a'
stringDeleteMultiples($value, ...$multiples): string
Возвращает строку значения удаляя последовательные повторы подстрок
$string = Helper::stringDeleteMultiples('abcabc', 'abc'); // $string = 'abc' $string = Helper::stringDeleteMultiples('a--bb', ['-', 'b']); // $string = 'a-b'
stringEnds($value, ...$searches): string
Проверяет конец строки на совпадение подстрок и возвращает найденную подстроку или null
$string = Helper::stringEnds('abc', 'c'); // $string = 'c'
stringLength($value): int
Возвращает длину строки
$integer = Helper::stringLength('123'); // $integer = 3
stringLower($value): string
Переводит строку в нижний регистр
$string = Helper::stringLower('ABC'); // $string = 'abc'
stringLowerFirst($value): string
Возвращает строку с первый символом в нижнем регистре
$string = Helper::stringLowerFirst('Abc'); // $string = 'abc'
stringLowerFirstAll($value): string
Возвращает строку со всеми словами в нижнем регистре
$string = Helper::stringLowerFirstAll('Abc def Ghi-Jkl_Mno'); // $string = 'abc def ghi-jkl_mno'
stringMerge(...$values): string
Объединяет значения в одну строку с заменой предыдущих символов
$string = Helper::stringMerge('abc', 'de'); // $string = 'dec'
stringPadPrefix($value, $prefix, $condition): string
Добавляет в начало строки префикс при выполнении условия condition
$string = Helper::stringPadPrefix('def', 'abc', true); // $string = 'abcdef'
stringPadSuffix($value, $suffix, $condition): string
Добавляет в конец строки суффикс при выполнении условия condition
$string = Helper::stringPadSuffix('abc', 'def', true); // $string = 'abcdef'
stringPaste(&$value, $paste, $start): string
Вставляет подстроку в строку с позиции start
$string = Helper::stringPaste('abc', 'd', 2); // $string = 'abdc'
stringPlural($value, $plurals, $includeValue): string
Возвращает число с числительным названием из массива с тремя вариантами для [0|5..9, 1, 2..4]
$string = Helper::stringPlural(1, ['штук', 'штука', 'штуки']); // $string = '1 штука'
stringPosAll($value, ...$searches): array
Возвращает массив всех позиций искомых подстрок найденных в строке
$array = Helper::stringPosAll('abcd', 'bc', 'd'); // $array = ['bc' => [1], 'd' => [3]]
stringPosAny($value, ...$searches): array
Возвращает массив позиции первой искомой подстроки найденной в строке
$array = Helper::stringPosAny('abcd', ['f', 'b', 'c']); // $array = ['b' => 1]
stringRandom($pattern): string
Возвращает случайную строку по шаблону регулярного выражения
$string = Helper::stringRandom('/[a-z]{10}/'); // $string = 'sfosdjocsh'
stringRepeat($value, $count): string
Возвращает повторяющуюся строку значения указанное количество раз
$string = Helper::stringRepeat('a', 3); // $string = 'aaa' $string = Helper::stringRepeat(1, 3); // $string = '111'
stringReplace($value, $searches, $replaces): string
Заменяет подстроки в строке
$string = Helper::stringReplace('abcd', 'd', 'x'); // $string = 'abcx' $string = Helper::stringReplace('abcd', ['d' => 'x']); // $string = 'abcx'
stringReverse($value): string
Возвращает реверсивную строку значения
$string = Helper::stringReverse('abc'); // $string = 'cba' $string = Helper::stringReverse(123); // $string = '321'
stringSearchAll($value, ...$searches): array
Возвращает массив всех искомых подстрок найденных в строке
$array = Helper::stringSearchAll('abcd', 'bc', 'd'); // $array = ['bc', 'd'] $array = Helper::stringSearchAll('Иванов Иван Иванович', ['*Иван*']); // $array = ['*Иван*']
stringSearchAny($value, ...$searches): array
Возвращает массив первой искомой подстроки найденной в строке
$string = Helper::stringSearchAny('abcd', 'bc'); // $string = ['bc'] $string = Helper::stringSearchAny('abcd', ['ab', 'bc']); // $string = ['ab'] $string = Helper::stringSearchAny('Иванов Иван Иванович', '*Иван*'); // $string = ['*Иван*']
stringSegment($value): string
Возвращает строку с разбиением слитных слов и цифр
$string = Helper::stringSegment('abc2defXyz'); // $string = 'abc 2 def Xyz'
stringSplit($value, $delimiters, $index, $cacheEnabled): array
Возвращает массив подстрок разбитых на части между разделителем в строке
$array = Helper::stringSplit('abc,,def/xyz', [',', '/']); // $array = ['abc', '', 'def', 'xyz']
stringSplitRange($value, $delimiters, $indexFrom, $indexTo, $cacheEnabled): array
Возвращает массив подстрок разбитых на части между разделителем в строке
$string = Helper::stringSplitRange('abc,def,xyz', ',', 1, 1); // $string = 'def'
stringSplitSearch($value, $delimiters, ...$searches): array
Возвращает массив индексов частей между $delimiters, в которых найдены строки $searches
$array = Helper::stringSplitSearch('abc,def', ',', 'a'); // $array = ['a' => [0]]
stringStarts($value, ...$searches): string
Проверяет начало строки на совпадение подстрок и возвращает найденную подстроку
$string = Helper::stringStarts('abc', 'a'); // $string = 'a'
stringUpper($value): string
Переводит строку в верхний регистр
$string = Helper::stringUpper('abc'); // $string = 'ABC'
stringUpperFirst($value): string
Возвращает строку с первый символом в верхнем регистре
$string = Helper::stringUpperFirst('abc'); // $string = 'Abc'
stringUpperFirstAll($value): string
Возвращает строку со всеми словами в верхнем регистре
$string = Helper::stringUpperFirstAll('abc Def ghi-jkl_mno'); // $string = 'Abc Def Ghi-Jkl_Mno'
Telegram
Работа с сообщениями телеграм
telegramBreakMessage($value, $hasAttach): array
Разбивает текст сообщения на части для отправки в телеграм
$array = Helper::telegramBreakMessage('Иванов Иван Иванович', false); // $array = ['Иванов Иван Иванович']
Time
Работа со временем
timeBetweenDatesToArray($dateFrom, $dateTo): array
Возвращает массив периодов между датами
$array = Helper::timeBetweenDatesToArray('01.01.2025 00:00:00', '02.02.2026 01:02:03'); // $array = ['years' => 1, 'months' => 1, 'days' => 1, 'hours' => 1, 'minutes' => 2, 'seconds' => 3]
timeBetweenDatesToString($dateFrom, $dateTo, $withTime, $time24): array
Возвращает массив периодов между датами
$string = Helper::timeBetweenDatesToString('01.01.2025 00:00:00', '02.02.2026 01:02:03', true); // $string = '1 год 1 месяц 1 день 1 час 2 минуты 3 секунды'
timeFromSeconds($value): string
Возвращает строку вида ##:##:## из переданного количества секунд
$string = Helper::timeFromSeconds(3661); // $string = '01:01:01'
timeSecondsToArray($value): array
Возвращает массив периодов из количества секунд
$array = Helper::timeSecondsToArray(1); // $array = ['years' => 0, 'days' => 0, 'hours' => 0, 'minutes' => 0, 'seconds' => 1, 'milliseconds' => 0]
timeSecondsToString($value, $withZero, $withMilliseconds, $pluralNames): array
Возвращает период из количества секунд в виде строки YDHM
$string = Helper::timeSecondsToString(123); // $string = '2 минуты 3 секунды'
Transform
Работа с трансформацией
transformToArray($value): array
Возвращает массив из значения
$array = Helper::transformToArray(['a', 'b']); // $array = ['a', 'b'] $array = Helper::transformToArray('a'); // $array = ['a']
Translit
Работа с транслитерацией
translitFromSlug($value, $slugSeparator = '_'): string
Возвращает строку из slug
$string = Helper::translitFromSlug('abv_gde_123'); // $string = 'абв где 123'
translitString($value, $direction): string
Возвращает транслитерацию строки
$string = Helper::translitString('абвгд'); // $string = 'abvgd'
translitToSlug($value, $slugSeparator = '_'): string
Возвращает транслитерацию строки
$string = Helper::translitToSlug('абв Где!.123'); // $string = 'abv_gde_123'
Url
Работа с url адресом
urlCreate($scheme, $host, $path, $query): array
Возвращает строку адреса url
$string = Helper::urlCreate(scheme: 'https', host: 'a.com', path: 'b', query: ['c' => 1]); // $string = 'https://a.com/b?c=1'
urlDomainDecode($value): string
Возвращает декодированный русский домен вида xn--
$string = Helper::urlDomainDecode('xn--e1afmkfd.xn--p1ai'); // $string = 'пример.рф'
urlDomainEncode($value): string
Возвращает кодированный русский домен в виде xn--
$string = Helper::urlDomainEncode('пример.рф'); // $string = 'xn--e1afmkfd.xn--p1ai'
urlParse($value): array
Возвращает массив частей адреса url
$array = Helper::urlParse('http://a.com/d/?e=f'); // $array = ['scheme' => 'http', 'host' => 'a.com', 'path' => '/d', 'query' => ['e' => 'f']]
Var
Работа с переменными
numberSwap($value1, $value2): void
Меняет местами значения value1 и value2
$integer1 = 1; $integer2 = 2; Helper::numberSwap($integer1, $integer2); // $integer1 = 2, $integer2 = 1