PHPackages                             sorokinmedia/yii2-helpers - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sorokinmedia/yii2-helpers

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

sorokinmedia/yii2-helpers
=========================

Helpers for Yii2

2461PHPCI failing

Since Jan 22Pushed 6y ago6 watchersCompare

[ Source](https://github.com/sorokinmedia/yii2-helpers)[ Packagist](https://packagist.org/packages/sorokinmedia/yii2-helpers)[ RSS](/packages/sorokinmedia-yii2-helpers/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (2)Used By (0)

yii2-helpers
============

[](#yii2-helpers)

[![Total Downloads](https://camo.githubusercontent.com/33752d525bb81dabed8bfa19d62809599fbcdc1a0e06feac15eb2728968574b5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736f726f6b696e6d656469612f796969322d68656c706572732e737667)](https://packagist.org/packages/sorokinmedia/yii2-helpers)

---

Sorokin.Media repository

---

Компонент содержит несколько хелперов, которые могут быть использованы в проектах.

---

### ArrayHelper

[](#arrayhelper)

#### список методов

[](#список-методов)

- `public static function convertArrayToArrayOfObject(array $array, string $type = 'int') : array {}` - конвертирует массив key=&gt;value в массив объектов {'id', 'name'}
- `public static function costHourValues() : array {}` - формирует список временных интервалов для выбора в зарплатном модуле

---

### DateHelper

[](#datehelper)

#### список констант

[](#список-констант)

- `const TIME_SECOND_ONE` - одна секунда
- `const TIME_MINUTE_ONE` - одна минута
- `const TIME_HOUR_ONE` - один час
- `const TIME_HOUR_TWELVE` - 12 часов
- `const TIME_DAY_ONE` - один день
- `const TIME_DAY_FIFTEEN` - 15 дней
- `const TIME_DAY_THIRTY` - 30 дней
- `const TIME_YEAR_ONE` - один год
- `const WEEKEND_DAYS` - массив выходных дней

#### список методов

[](#список-методов-1)

- `public static function getExtendTime(int $extend_time) : int` - получает кол-во часов, учитывая выходные
- `public static function getListOfTimezones(string $locale = '') : array` - список временных зон
- `public static function getLeftTime(int $time = null)` - трансформирует секунды(unixstamp) в текст (1 час 20 минут)
- `public static function getTzOffset(string $timezone) : int` - получает отступ таймзоны от UTC в секундах
- `public static function hoursArray() : array` - формирует список временных интервалов для селекта на форме
- `public static function getStartEndMonth() : array` - первый и последний день месяца
- `public static function getStartEndPrevMonth() : array` - первый и последний день прошлого месяца

---

### PluralHelper

[](#pluralhelper)

#### список методов

[](#список-методов-2)

- `public static function convert(int $n, string $type = "hours") : string` - конвертирует число в слово в нужной словоформе. доступные варианты:
    - `days` - дни
    - `months` - месяцы
    - `years` - годы
    - `hours` - часы
    - `minutes` - минуты
    - `seconds` - секунды
    - `text` - тексты
    - `notification` - уведомления
    - `tests` - разы
    - `tasks` - задачи
    - `rubl` - рубли

---

### TextHelper

[](#texthelper)

#### список методов

[](#список-методов-3)

- `public static function translitString(string $string) : string` - транслитерация строки
- `public static function autop( $pee, $br = true )` - обертка из Worpdress в теги p,br и т.д.
- `public static function checkCardNumber(string $str) : bool` - проверка номера карты по методу Луна
- `public static function clearText(string $text = null) : string` - очистка текста от пробелов и тегов
- `public static function clearTextAllowedTags(string $text = null) : string` - чистит текст от тегов, оставляя указанные теги
- `public static function trimToLowerText($text) : string` - убирает пробелы и приводит к нижнему регистру
- `public static function array2string(array $array) : string` - конвертирует массив в строку (для JSON)
- `public static function getCountLinkPost(string $text) : int` - подсчет кол-ва тегов а в тексте
- `public static function filterResponse(string $response) : string` - конвертирует JSON ответ в строку (для тестов API)
- `public static function makeUrls(string $text) : string` - автоматическая простановка тегов ссылок в тексте
- `public static function removeNbsp(string $text) : string` - очистка текста от непрерывных пробелов (nbsp)

---

### TestHelper

[](#testhelper)

#### список методов

[](#список-методов-4)

- `public static function filterResponse(string $response) : string` - приводит API ответ к нужному виду. для тестов API

---

### StatsHelper

[](#statshelper)

#### список методов

[](#список-методов-5)

- `public static function makeInt(array $array) : array` - приводит значение массива к целым числам (int)
- `public static function makeFloat(array $array) : array` - приводит значения массива к дробным числам (float)
- `public static function makeRound(array $array) : array` - округляет все значения массива до 2 знаков после запятой
- `public static function makeMinutes(array $array) : array` - минуты из секунд
- `public static function date_range(string $from, string $to, string $step = '+1 day', string $output_format = 'd-m-Y' ) : array` - формирует массив дат заданного интервала

---

### CacheHelper

[](#cachehelper)

\###Работа с кешем

Чтобы завернуть ответ в API в кеш необходимо сделать:

- Определить уникальный ключ исходя из параметров запроса, например `"User.$user->id.new-messages"`
- Перед вызовом основного функционала в апи методе добавить проверку наличия кеша:

```
$cache_key = "User.$user->id.new-messages";
if (Yii::$app->cache->exists($cache_key)){
    return new ApiAnswerLogFromCache(null, Yii::$app->cache->get($cache_key));
}

```

- Перед отправкой ответа после основного функицонала метода добавлять ответ в кеш:

```
Yii::$app->cache->set($cache_key, $messages, CacheHelper::CACHE_TIME_FIVE_MINUTES);
return new ApiAnswerLogInsertCache(null, $messages);

```

- Добавить метод очистки кеша по заданному ключу в `CacheHelper`
- Добавить вызовы метода очистки кеша по коду, там где это требуется
- Описать закешированный метод в локальном `readme.MD`

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6071315?v=4)[Ruslan Gilyazetdinov](/maintainers/Ma3oBblu)[@Ma3oBblu](https://github.com/Ma3oBblu)

---

Top Contributors

[![Ma3oBblu](https://avatars.githubusercontent.com/u/6071315?v=4)](https://github.com/Ma3oBblu "Ma3oBblu (19 commits)")[![apostal89](https://avatars.githubusercontent.com/u/19591493?v=4)](https://github.com/apostal89 "apostal89 (1 commits)")

### Embed Badge

![Health badge](/badges/sorokinmedia-yii2-helpers/health.svg)

```
[![Health](https://phpackages.com/badges/sorokinmedia-yii2-helpers/health.svg)](https://phpackages.com/packages/sorokinmedia-yii2-helpers)
```

###  Alternatives

[outl1ne/nova-grid

A Laravel Nova tool that allows placing fields in a grid using -&gt;size() helpers.

1017.6k](/packages/outl1ne-nova-grid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
