PHPackages                             incoming/incoming - 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. incoming/incoming

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

incoming/incoming
=================

Transform loose and complex input into consistent, strongly-typed data structures

v0.3.0(8y ago)21986.9k↓44.4%7MITPHPPHP &gt;=7.0.0

Since Mar 30Pushed 8y ago9 watchersCompare

[ Source](https://github.com/Rican7/incoming)[ Packagist](https://packagist.org/packages/incoming/incoming)[ Docs](https://github.com/Rican7/incoming)[ RSS](/packages/incoming-incoming/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (3)Versions (5)Used By (0)

Incoming
========

[](#incoming)

[![Build Status](https://camo.githubusercontent.com/831b55323cbba545df67288580919958a231b924bfddc285c580f62999ed9a03/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f526963616e372f696e636f6d696e672e7376673f7374796c653d666c6174)](https://travis-ci.org/Rican7/incoming)[![Code Coverage](https://camo.githubusercontent.com/1885b65e000aa9da129e2169a8171c40de5b410e9dd8af4b71cbcea33f3bf1d2/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f526963616e372f696e636f6d696e672e7376673f7374796c653d666c6174)](https://scrutinizer-ci.com/g/Rican7/incoming/)[![Quality Score](https://camo.githubusercontent.com/77ca78f22274cd577c01ac2cdc5aea966cb6e2a3b966a8aa1b3f207be0ebb85e/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f526963616e372f696e636f6d696e672e7376673f7374796c653d666c6174)](https://scrutinizer-ci.com/g/Rican7/incoming/)[![Latest Stable Version](https://camo.githubusercontent.com/a079576ccb7ce5fe92687d2e6716ca0c68070bd9e9a5234ec2253ce2fdb7f825/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f526963616e372f696e636f6d696e672e7376673f7374796c653d666c6174)](https://github.com/Rican7/incoming/releases)

Incoming is a PHP library designed to simplify and abstract the transformation of loose, complex input data into consistent, strongly-typed data structures.

Born out of inspiration from using [Fractal](http://fractal.thephpleague.com/), **Incoming** can be seen as a spiritual inversion. When working with data models of any kind (database, remote service, etc), it can be a huge pain to take raw input data and turn it into anything usable. Even worse is when something changes and you have to duplicate code or try and keep backwards compatibility. Incoming is here to make all this easier while enabling you to create more concern-separated, reusable, and testable code.

"Wait, what? Why not just use 'x' or 'y'?" [Don't worry, I've got you covered.](#wait-what-why-not-just-use-x-or-y)

Features
--------

[](#features)

- Input filtering and transforming
- Built-in powerful, immutable data-structures for handling complex input
- Allows for automatic hydrator-for-model resolution via factory abstraction
- Makes strong use of interfaces for well structured, easily-testable code
- Completely configurable via composable units

Still curious? Check out the [examples](#examples).

Installation
------------

[](#installation)

1. [Get Composer](https://getcomposer.org/)
2. Add **"incoming/incoming"** to your dependencies: `composer require incoming/incoming`
3. Include the Composer autoloader `
