PHPackages                             darkfriend/devhelpers - 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. darkfriend/devhelpers

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

darkfriend/devhelpers
=====================

Helper classes for developer

1.4.3(6y ago)21.1k1PHPPHP &gt;=7.0

Since Dec 10Pushed 6y ago1 watchersCompare

[ Source](https://github.com/darkfriend/devhelpers)[ Packagist](https://packagist.org/packages/darkfriend/devhelpers)[ Docs](https://github.com/darkfriend/devhelpers)[ RSS](/packages/darkfriend-devhelpers/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (8)DependenciesVersions (10)Used By (0)

DevHelpers - классы хелперы, которые часто бывают полезны в разработке
======================================================================

[](#devhelpers---классы-хелперы-которые-часто-бывают-полезны-в-разработке)

**Структура:**

- DebugHelper

    - `DebugHelper::$mainKey` - свойство, содержащее имя ключа для $\_COOKIE и $\_GET
    - `DebugHelper::print_pre($o, $die, $show)` - статичный метод, который выводит всю структуру массива и объекта, с информацией о файле и строке (подробности ниже)
    - `DebugHelper::call($func, ...$params)` - статичный метод, который вызывает переданную функцию только у админа, передавая нужные параметры (подробности ниже)
    - `DebugHelper::trace($message, $category='common')` - статичный метод трессировки (ниже примеры использования)
- StringHelper

    - `StringHelper::htmlspecialchars($val)` - статичный метод, который делает htmlspecialchars() для строк и массивов
    - `StringHelper::htmlspecialchars_decode($val)` - статичный метод, который делает htmlspecialchars\_decode() для строк и массивов
    - `StringHelper::generateString($length, $chars)` - статичный метод, который возвращает сгенерированную строку нужной длины
    - `StringHelper::getDeclension($value, $words)` - статичный метод, который возвращает окончания слов при слонении. *Например: 5 товаров, 1 товар, 3 товара*
    - `StringHelper::truncate($string, $length, $suffix = '...', $encoding = null)` - возвращает обрезанный текст в $length символов
    - `StringHelper::truncateWords($string, $count, $suffix = '...')` - возвращает обрезанный текст в $length слов
- ArrayHelper

    - `ArrayHelper::in_array($needle, $haystack)` - highload method for search value in array
    - `ArrayHelper::isMulti($arr)` - check array on multiple array
    - ` ArrayHelper::sortValuesToArray($sourceArray,$orderArray)` - Sort values array to order array
    - ` ArrayHelper::sortKeysToArray($sourceArray,$orderArray)` - Sort keys source array to order array
- CurlHelper

    - `CurlHelper::getInstance($newSession = false, $options = [])` - return instance CurlHelper
    - `CurlHelper::getInstance($newSession = false, $options = [])->request($url, $data = [], $method = 'post', $requestType = '', $responseType = 'json')` - do request to url
- TypeHelper

    - `TypeHelper::toStrictType($value)` - return $value to strict type

DebugHelper::print\_pre($o,$die,$show);
---------------------------------------

[](#debughelperprint_preodieshow)

- $o - данные, которые надо вывести
- $die - прерывать ли после вывода выполнение скрипта (по умолчанию false)
- $show - выводить всем \[или только в определенных случаях\] (по умолчанию true)

### Пример

[](#пример)

```
use \darkfriend\devhelpers\DebugHelper;
$data = [
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => [
        'subKey1' => 'subValue1',
        'subKey2' => 'subValue2',
    ],
];
DebugHelper::print_pre($data);
```

DebugHelper::call($func,...$params)
-----------------------------------

[](#debughelpercallfuncparams)

- $func - функция, которую надо вывести
- $params - параметры которые надо передать

### Пример

[](#пример-1)

```
use \darkfriend\devhelpers\DebugHelper;
$data = [
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => [
        'subKey1' => 'subValue1',
        'subKey2' => 'subValue2',
    ],
];

// способ 1: используя $params
DebugHelper::call(function($data) {
  DebugHelper::print_pre($data);
},$data);

// способ 2: используя use
DebugHelper::call(function() use ($data) {
    DebugHelper::print_pre($data);
});
```

DebugHelper::trace($message,$category)
--------------------------------------

[](#debughelpertracemessagecategory)

- $message - сообщение
- $category - категория трассировки

### Дополнительные возможности

[](#дополнительные-возможности)

- поддержка режимов трассировния
    - TRACE\_MODE\_REPLACE - режим перезаписи лога
    - TRACE\_MODE\_APPEND - режим дополнение лога
    - TRACE\_MODE\_SESSION - режим trace-сессии
- поддержка trace-сессий - каждый запуск в отдельном

### Example 1: простая трассировка

[](#example-1-простая-трассировка)

*Задача: Простая запись данных в лог*

```
use \darkfriend\devhelpers\DebugHelper;
$array1 = [
    'key1' => 'value1',
    'key2' => 'value2'
];

// trace 1
DebugHelper::trace($array1);
// итог: запишет $array1 с категорией common.

$array1['key3'] = [
    'subKey1' => 'subValue1',
    'subKey2' => 'subValue2',
];

// trace 2
DebugHelper::trace($array1);
// итог: допишет в лог обновленный $array1 с категорией common
```

#### Example 1: FAQ

[](#example-1-faq)

- *Где лежит файл?* - путь `$_SERVER['DOCUMENT_ROOT].'/trace.log'`
- *Что будет в логе?* - будет 2 записи переменной $array1. По умолчанию идет запись лога сверху вниз
- *Какая категория будет?* - по умолчанию категория "common"

### Example 2: каждый запуск в отдельный файл

[](#example-2-каждый-запуск-в-отдельный-файл)

*Задача: Мы сохраняем данные и хотим трассировать id-строки и сохраняемые данные*

```
use \darkfriend\devhelpers\DebugHelper;

$id = 1; // идентификатор

// делаем инициализацию
// $id - ключ trace-session
// self::TRACE_MODE_SESSION - включаем режим trace-session
DebugHelper::traceInit($id, DebugHelper::TRACE_MODE_SESSION);

$array1 = [
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
];

DebugHelper::trace($array1);
// итог: запишет $array1 с категорией common.

$array1['key3'] = [
    'subKey1' => 'subValue1',
    'subKey2' => 'subValue2',
];

// trace 2
DebugHelper::trace($array1);
// итог: допишет в лог обновленный $array1 с категорией common
```

#### Example 2: FAQ

[](#example-2-faq)

- *Где лежит файл?* - путь `$_SERVER['DOCUMENT_ROOT]."/{$id}-trace.log"`
- *Что будет в логе?* - будет 2 записи переменной $array1. По умолчанию идет запись лога сверху вниз
- *Какая категория будет?* - по умолчанию категория "common"
- *Как изменить путь до лога?* - по умолчанию лог создается в корне, чтоб его изменить, нужно передать путь от корня в 3-ий параметр метода DebugHelper::traceInit(). Пример: `DebugHelper::traceInit($id, self::TRACE_MODE_SESSION,'/logs')`
- *Могу ли я для одного trace сделать один файл, для другого - другой?* - да, нужно в нужный момент вызвать метод `DebugHelper::setHashSession($hash)`, где $hash - это любой ключ.

CurlHelper
----------

[](#curlhelper)

```
$url = 'http://site.ru';
$curl = CurlHelper::getInstance();
$response = $curl->request($url);

// $response - array response site.ru
// $curl->lastCode - response http code
// $curl->lastHeaders - response http headers
```

### CurlHelper with custom headers

[](#curlhelper-with-custom-headers)

```
$url = 'http://site.ru';
$curl = CurlHelper::getInstance();
$response = $curl
    ->addHeaders([
        'Accept-Language' => 'ru-RU',
        'Custom-Head' => 'custom',
    ])
    ->request($url);

// $response - array response site.ru
// $curl->lastCode - response http code
// $curl->lastHeaders - response http headers
```

### CurlHelper with debug

[](#curlhelper-with-debug)

```
$url = 'http://site.ru';
$curl = CurlHelper::getInstance(false,[
    'debug' => true,
    'debugFile' => __DIR__.'/logs'
]);
$response = $curl->request($url);

// $response - array response site.ru
// $curl->lastCode - response http code
// $curl->lastHeaders - response http headers
```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~41 days

Recently: every ~21 days

Total

9

Last Release

2381d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/302f1cdc7cb85fc89550bad0c164e195b831f50de8a2a148fa754670d5f328cc?d=identicon)[darkfriend](/maintainers/darkfriend)

---

Top Contributors

[![darkfriend](https://avatars.githubusercontent.com/u/7825114?v=4)](https://github.com/darkfriend "darkfriend (15 commits)")

---

Tags

devhelperslibraryphpdevarraystringhelpersdebugdevelopmentdarkfriend

### Embed Badge

![Health badge](/badges/darkfriend-devhelpers/health.svg)

```
[![Health](https://phpackages.com/badges/darkfriend-devhelpers/health.svg)](https://phpackages.com/packages/darkfriend-devhelpers)
```

###  Alternatives

[nette/utils

🛠 Nette Utils: lightweight utilities for string &amp; array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.

2.1k394.3M1.5k](/packages/nette-utils)[danielstjules/stringy

A string manipulation library with multibyte support

2.4k26.0M191](/packages/danielstjules-stringy)[voku/arrayy

Array manipulation library for PHP, called Arrayy!

4875.5M16](/packages/voku-arrayy)[voku/stringy

A string manipulation library with multibyte support

1783.8M19](/packages/voku-stringy)[pragmarx/ia-arr

Laravel Illuminate Agnostic Arr

553.6M12](/packages/pragmarx-ia-arr)[pragmarx/ia-str

Laravel Illuminate Agnostic Str

523.5M5](/packages/pragmarx-ia-str)

PHPackages © 2026

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