graze/data-flow

Facilitate the movement of data between systems

v0.2 2018-10-03 12:08 UTC

This package is auto-updated.

Last update: 2024-10-24 04:18:16 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

A Flow is a defined series of individual steps each of which modify some data that gets passed to the next step in the flow.

Details

  • Soups simple calling f::moveFiles($targetDir)->each(f::gzip())->moveFiles($ftpDir)->flow($files)
    • transfer files from a remote location, compress using gzip and transfer to another location
  • How to flow
  • Works with PHP 5.6, PHP 7 & HHVM
  • N.B. Uses some command line programs which conform to Ubunutu's syntax.

Commands

Generic

  • run - Iterate through a set of Flows
  • toAll - Send the same input to each Flow at the same time
  • first - Take the first node from a collection
  • last - Take the last node from a collection
  • filter - Filter out nodes from a collection
  • map - Apply a function to each node in a collection
  • each - Apply a FlowInterface to each node in a collection
  • callback - Apply a callback to the node

Files

  • makeDirectory - Make a directory from a file node
  • merge - Merge a collection of files into a file
  • compress - Compress a file
  • decompress - DeCompress a file
  • gzip - Gzip a file
  • gunzip - Gunzip a file
  • zip - Zip a file
  • unzip - Unzip a file
  • copyFile - Copy a file to a new location
  • copyFiles - Cope a collection of files to a new location
  • moveFile - Move a file to a new location
  • moveFiles - Move a collection of files to a new location
  • convertEncoding - Convert the encoding of a file
  • replaceText - Replace the text in a file
  • tail - Retrieve the last n lines of a file
  • head - Retrieve the first n lines of a file

Installation

Via Composer

$ composer require graze/data-flow

Testing

DataFlow has a PHPUnit test suite run through Docker 🐳. To run the tests run the following command:

$ make test

Contributing

Please see CONTRIBUTING for details.

Change log

Please see CHANGELOG for more information what has changed recently.

Security

If you discover any security related issues, please email security@graze.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.