PHPackages                             greabock/populator - 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. [Database &amp; ORM](/categories/database)
4. /
5. greabock/populator

ActiveLibrary[Database &amp; ORM](/categories/database)

greabock/populator
==================

eloquent model populator

2.0.10(4y ago)72.5k1MITPHP

Since Jul 24Pushed 4y agoCompare

[ Source](https://github.com/greabock/populator)[ Packagist](https://packagist.org/packages/greabock/populator)[ RSS](/packages/greabock-populator/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (3)Versions (19)Used By (0)

Populator
=========

[](#populator)

**Proof of concept смешанной гидрации данных для Eloquent**

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

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

- [Идея](#%D0%98%D0%B4%D0%B5%D1%8F)
- [Особенности](#%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8)
- [Ограничения](#%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Использование](#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
    - [Пример бэкенд](#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B1%D1%8D%D0%BA%D0%B5%D0%BD%D0%B4)
    - [Пример фронтенд](#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%84%D1%80%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D0%B4)
- [Особенности ввода](#%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0)
    - [Плоские сущности](#%D0%BF%D0%BB%D0%BE%D1%81%D0%BA%D0%B8%D0%B5-%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B8)
    - [HasOne](#hasone)
    - [HasMany](#hasmany)
    - [BelongsTo](#belongsto)
    - [BelongsToMany](#belongstomany)
- [Особенности вывода](#%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0)

Идея
----

[](#идея)

Работая с данными по API, мы часто получаем эти сущности с вложенными отношениями, но вот при отправке данных, вложенные отношения приходится обрабатывать вручную. Данный гидратор позволяет не думать об этом. И это сильно ускоряет разработку.

Особенности
-----------

[](#особенности)

- Позволяет работать с вводом и выводом моделей Eloquent "как есть" - без лишних манипуляций
- Unit of work - или будут выполнены *все* изменения, или (в случае ошибки) изменения не будут выполнены вообще
- Idenity map - гарантирует, что сущности одного типа и с одинаковым идетификатором - есть суть одно
- uuid - позволяет создавать валидные сущности и связывать их между собой по идентификатору, не обращаясь к базе данных

Ограничения
-----------

[](#ограничения)

- На данный момент работает только с uuid

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

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

```
composer require greabock/populator

```

Использование
-------------

[](#использование)

Использовать эту штуку очень просто

[🔝 ](#%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D0%B5)

### Пример бэкенд

[](#пример-бэкенд)

```
