PHPackages                             andrey-tech/utils-php - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. andrey-tech/utils-php

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

andrey-tech/utils-php
=====================

Набор трейтов, содержащих общие вспомогательные методы для работы с файлами, каталогами, данными в формате JSON и т.п.

1.0.0(5y ago)17MITPHPPHP &gt;=7.0

Since Jul 30Pushed 5y ago1 watchersCompare

[ Source](https://github.com/andrey-tech/utils-php)[ Packagist](https://packagist.org/packages/andrey-tech/utils-php)[ Docs](https://github.com/andrey-tech/utils-php)[ RSS](/packages/andrey-tech-utils-php/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

Utils PHP
=========

[](#utils-php)

Набор трейтов, содержащих общие вспомогательные методы для работы с файлами, каталогами, данными в формате JSON и т.п.

Содержание
----------

[](#содержание)

- [Требования](#%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
- [Установка](#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Трейт `FileUtils`](#%D0%A2%D1%80%D0%B5%D0%B9%D1%82-fileutils)
- [Трейт `JsonUtils`](#%D0%A2%D1%80%D0%B5%D0%B9%D1%82-jsonutils)
- [Трейт `Utils`](#%D0%A2%D1%80%D0%B5%D0%B9%D1%82-utils)
- [Автор](#%D0%90%D0%B2%D1%82%D0%BE%D1%80)
- [Лицензия](#%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)

Требования
----------

[](#требования)

- PHP &gt;= 7.0.
- Произвольный автозагрузчик классов, реализующий стандарт [PSR-4](https://www.php-fig.org/psr/psr-4/).

Установка
---------

[](#установка)

Установка через composer:

```
$ composer require andrey-tech/utils-php

```

или добавить

```
"andrey-tech/utils-php"

```

в секцию require файла composer.json.

Трейт `FileUtils`
-----------------

[](#трейт-fileutils)

Трейт `\App\Utils\FileUtils` содержит общие вспомогательные методы для работы с файлами и каталогами.
При возникновении ошибок выбрасывается исключение с объектом класса `\App\AppException`.

- `getAbsoluteFileName(string $relativeFileName, bool $createDir = true) :?string`
    Возвращает абсолютное имя файла.

    - `$relativeFileName` - относительное имя файла для поиска в путях включения;
    - `$createDir` - создавать необходимые каталоги рекурсивно.

    Метод ищет *предполагаемое* местонахождение файла в путях включения (include\_path) по имени каталога, в переданном относительном имени файла (то есть сам файл и каталог могут отсутствовать).
    Создает необходимые каталоги рекурсивно по первому пути включения.
    Возвращает абсолютное имя файла или `null`, если каталог файла отсутствует и `$createDir = false`.

    Пример:

    - пути включения (include\_path): `.:/php/includes:/php/phar`;
    - относительное имя файла: `$relativeFileName = 'protected/temp/debug.log'`;
    - включено создание необходимых каталоги рекурсивно: `$createDir = true`.

    Метод `getAbsoluteFileName()` будет искать каталог `protected/temp/` по каждому из путей включения: `.`, `/php/includes`, `/php/phar`. Если каталог `protected/temp/` не найден ни по одному из путей включения, то метод создаст каталог `protected/temp/` рекурсивно по первому пути включения - `.`и вернет абсолютное имя файла в этом каталоге - `./protected/temp/debug.log`.
    Если каталог `protected/temp/` будет найден в одном из путей включения, то метод сразу вернет абсолютное имя файла в этом каталоге.

```
use \App\Utils\FileUtils;

class Example
{
    use FileUtils;

    public function __construct()
    {
        echo get_include_path() . PHP_EOL;
        $relativeFileName = 'protected/temp/debug.log';
        $absFileName = $this->getAbsoluteFileName($relativeFileName, $createDir = true);
        echo $absFileName . PHP_EOL;
    }
}

$e = new Example();
```

Трейт `JsonUtils`
-----------------

[](#трейт-jsonutils)

Трейт `\App\Utils\JsonUtils` содержит общие вспомогательные методы для преобразования данных в формат JSON и обратно. При возникновении ошибок выбрасывается исключение с объектом класса `\App\AppException`.

- `toJson(mixed $data, array|int $encodeOptions = []) :string` Кодирует данные в строку JSON.

    - `$data` - данные для преобразования;
    - `$encodeOptions` - дополнительные [опции кодирования](https://www.php.net/manual/ru/json.constants.php) в виде массива или битовой маски.
- `fromJson(string $json, bool $assoc = true, array|int $decodeOptions = [])` Декодирует строку JSON.

    - `$json` - строка JSON для декодирования;
    - `$assoc` - преобразовывать возвращаемые объекты в ассоциативные массивы;
    - `$decodeOptions` - дополнительные [опции декодирования](https://www.php.net/manual/ru/json.constants.php) в виде массива или битовой маски.

```
use \App\Utils\JsonUtils;

class Example
{
    use JsonUtils;

    public function __construct()
    {
        $data = [
            'array' => [ 0 => 0, 1 => 1, 2 => 2, 3 => 3 ],
            'object' => [ 'a' => '1', 'b' => 2, 'c' => 3 ],
        ];

        $json1 = $this->toJson($data, $encodeOptions = JSON_PRETTY_PRINT|JSON_PARTIAL_OUTPUT_ON_ERROR);
        echo $json1. PHP_EOL;

        $json2= $this->toJson($data, $encodeOptions = [ JSON_PRETTY_PRINT, JSON_FORCE_OBJECT ]);
        echo $json2. PHP_EOL;

        $data1 = $this->fromJson($json1);
        print_r($data1);

        $data2 = $this->fromJson($json2, $assoc = false);
        print_r($data2);
    }
}

$e = new Example();
```

Трейт `Utils`
-------------

[](#трейт-utils)

Трейт `\App\Utils\Utils` содержит другие общие вспомогательные методы.
При возникновении ошибок выбрасывается исключение с объектом класса `\App\AppException`.

- `isNumericArray(mixed $variable) :bool` Проверяет, что значение переменной является НЕ ассоциативным (числовым) массивом.
    - `$variable` - переменная для проверки.

```
use \App\Utils\Utils;

class Example
{
    use Utils;

    public function __construct()
    {
        $data1 = [ 0 => 0, 1 => 1, 2 => 2, 3 => 3 ];
        var_dump($this->isNumericArray($data1));

        $data2 = [ 'a' => '1', 'b' => 2, 'c' => 3 ];
        var_dump($this->isNumericArray($data2));
    }
}

$e = new Example();
```

Автор
-----

[](#автор)

© 2020 andrey-tech

Лицензия
--------

[](#лицензия)

Данный код распространяется на условиях лицензии [MIT](./LICENSE).

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

2118d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/de69f7116b4bbba0435826347eeea01c7c6d831ae5ca5325ccf0686e7ddb92b4?d=identicon)[andrey-tech](/maintainers/andrey-tech)

---

Top Contributors

[![andrey-tech](https://avatars.githubusercontent.com/u/51994444?v=4)](https://github.com/andrey-tech "andrey-tech (3 commits)")

---

Tags

commonfilesjsonphpphp7traitsutilsjsonfilesutils

### Embed Badge

![Health badge](/badges/andrey-tech-utils-php/health.svg)

```
[![Health](https://phpackages.com/badges/andrey-tech-utils-php/health.svg)](https://phpackages.com/packages/andrey-tech-utils-php)
```

###  Alternatives

[justinrainbow/json-schema

A library to validate a json schema.

3.6k316.9M612](/packages/justinrainbow-json-schema)[mtdowling/jmespath.php

Declaratively specify how to extract elements from a JSON document

2.0k472.8M135](/packages/mtdowling-jmespathphp)[jms/serializer

Library for (de-)serializing data of any complexity; supports XML, and JSON.

2.3k135.8M851](/packages/jms-serializer)[jms/serializer-bundle

Allows you to easily serialize, and deserialize data of any complexity

1.8k89.3M627](/packages/jms-serializer-bundle)[colinodell/json5

UTF-8 compatible JSON5 parser for PHP

30422.2M45](/packages/colinodell-json5)[clue/ndjson-react

Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.

15467.7M16](/packages/clue-ndjson-react)

PHPackages © 2026

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