PHPackages                             rudolf-shnaps/extractorizee - 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. rudolf-shnaps/extractorizee

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

rudolf-shnaps/extractorizee
===========================

Extracting data from arrays and json using a schema

0.9.0(4mo ago)01MITPHPPHP &gt;=8.0.0

Since Dec 14Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/rudolf-shnaps/extractorizee)[ Packagist](https://packagist.org/packages/rudolf-shnaps/extractorizee)[ Docs](https://github.com/rudolf-shnaps/extractorizee)[ RSS](/packages/rudolf-shnaps-extractorizee/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

Extractorizee
=============

[](#extractorizee)

Задача работы библиотеки - получить данные из json или php-массива, используя схему. Схема является валидным json, в котором описывается набор строгих правил валидации для каждого узла. Если узел прошел все валидации, он копируется в результирующие данные.

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

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

- [Основные фичи](#%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5-%D1%84%D0%B8%D1%87%D0%B8)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Простой пример](#%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80)
- [Документация (в разработке)](./etc/docs/ru/README.md)

Основные фичи
-------------

[](#основные-фичи)

- подходит как для получения части данных, так и для валидации всего массива данных
- краткое и лаконичное описание правил для каждого узла
- возможность добавлять свои типы данных
- объединенный типы (union types)
- рекурсивные типы
- возможность переиспользования добавленные типы и паттерны
- набор готовых правил:
    - существование узла
    - значение по умолчанию, если узел не существует
    - тип данных узла
    - проверка на не пустое значение
    - проверка длины (строки, массивы, объекты)
    - проверка регулярным выражением
- добавление своих правил

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

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

Только необходимый код: с помощью [composer](https://getcomposer.org)

```
composer require rudolf-shnaps/extractorizee

```

Полностью: код, документация, **интерактивное демо**

```
git clone https://github.com/rudolf-shnaps/extractorizee.git

```

Интерактивное демо в папке examples, запускаем сервер, смотрим в браузере

```
cd ./extractorizee/examples
php -S 127.0.0.1:8000

```

Простой пример
--------------

[](#простой-пример)

Эти примеры не раскрывают все возможности библиотеки, побробнее смотрите [документацию](./etc/docs/ru/README.md) или **интрерактивное демо**. В демо есть примеры и песочница.

Для JSON:

```
