plumphp/plum

Plum is a data processing pipeline that helps you to write structured, reusable and well tested data processing code.

v0.5 2016-02-17 19:06 UTC

README

Plum

Plum is a data processing pipeline that helps you to write structured, reusable and well tested data processing code.

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

Latest Release MIT License Total Downloads

Developed by Florian Eckerstorfer in Vienna, Europe.

Features

Plum is a data processing pipeline, that means it reads data, filters and converts it and then writes the data.

  • Filters, converters and even writers are pipeline elements that can be attached to a workflow in arbitrary order
  • Readers are iterators that can return values of arbitrary type: arrays, objects or scalars, it doesn't matter to Plum
  • Conditional converters that are only applied to an item if it passes a filter
  • Ability to concatenate workflow to create smaller and better reusable workflows
  • Read from multiple sources, i.e., merge data from different sources into an output
  • Plums power comes from its extendability, check out additional packages and integrations

Plum has been greatly inspired by ddeboer/data-import.

Usage

Here is a quick preview, but please check out the documentation.

use Plum\Plum\Workflow;

$workflow = new Workflow();
$workflow->addFilter(/* filter */)
         ->addConverter(/* converter */)
         ->addWriter(/* writer */);
$workflow->process(/* reader */);

Installation

You can install Plum using Composer (recommended) or by downloading a release.

$ composer require plumphp/plum

Contribute

If you want to help us improve Plum you can contribute in a number of different ways:

  • Fix bugs or add additional features (check our Waffle board to see features and bugs that are ready to go)
  • Help others by providing support to others: Issues and Chat
  • Improve the documentation
  • Spread the work by tweeting, blogging or talking about Plum at your local user group

When you need help or have any questions feel free to contact us.

Support

If you need help getting started, run into problems or want to discuss new features you can also contact us. You can either create a new issue, you can join our Gitter chat or ping us on Twitter @cocurco.

Please be excellent to each other.

Authors

Plum is a Cocur open source project.

Change Log

See CHANGELOG.md.

License

The MIT license applies to plumphp/plum. For the full copyright and license information, please view the LICENSE file distributed with this source code.