graze / data-flow
Facilitate the movement of data between systems
v0.2
2018-10-03 12:08 UTC
Requires
- php: >=5.5.0
- graze/data-structure: ^2.0
- graze/extensible: dev-master@dev
- league/container: ^1.3
- league/flysystem: ^1.0
- symfony/process: ^2.7
Requires (Dev)
- league/flysystem-memory: ^1.0
- mockery/mockery: ~0.9
- phpunit/phpunit: 4.*
This package is auto-updated.
Last update: 2024-10-24 04:18:16 UTC
README
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 FlowstoAll
- Send the same input to each Flow at the same timefirst
- Take the first node from a collectionlast
- Take the last node from a collectionfilter
- Filter out nodes from a collectionmap
- Apply a function to each node in a collectioneach
- Apply a FlowInterface to each node in a collectioncallback
- Apply a callback to the node
Files
makeDirectory
- Make a directory from a file nodemerge
- Merge a collection of files into a filecompress
- Compress a filedecompress
- DeCompress a filegzip
- Gzip a filegunzip
- Gunzip a filezip
- Zip a fileunzip
- Unzip a filecopyFile
- Copy a file to a new locationcopyFiles
- Cope a collection of files to a new locationmoveFile
- Move a file to a new locationmoveFiles
- Move a collection of files to a new locationconvertEncoding
- Convert the encoding of a filereplaceText
- Replace the text in a filetail
- Retrieve the last n lines of a filehead
- 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.