Plum is a data processing pipeline that helps you to write structured, reusable and well tested data processing code.
Developed by Florian Eckerstorfer in Vienna, Europe.
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.
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 */);
$ composer require plumphp/plum
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.
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.
Plum is a Cocur open source project.
The MIT license applies to plumphp/plum. For the full copyright and license information, please view the LICENSE file distributed with this source code.