Soong 0.7.0 released
The 0.7.0 release of the Soong ETL library is now available on Packagist. Key changes since 0.6.0 include:
- The property abstractions (
PropertyInterface
,PropertyFactory
, and implementations) have been removed - it seems like the abstractions will only get in the way of leveraging PHP 7.x's improved native type-checking. - The Record Transformer concept has been introduced. While our experience with Drupal emphasized the mapping of properties within each record, the logical purpose of the transformation segment of an ETL pipeline is to transform a record at a time (stipulating that, yes, 90+% of the time you're individually transforming each property within the record)...
- ...thus one of the two
RecordTransformer
implementations provided out-of-the-box is thePropertyMapper
. The field mapping configuration we previously provided within thetransform
key is now thePropertyMapper
's configuration, and the classes are now implementations ofPropertyTransformer
rather thanTransformer
. - The other provided
RecordTransformer
isCopy
, for bulk-copying properties directly from the source record to the destination record. In many instances, most if not all properties being migrated are retaining exactly the same name and content, so it can help clarify the "interesting" property transformations if you don't have to individual express each and every trivial property copy.
This release was meant to be more ambitious (including refactoring of task pipelines) and sooner, but I've been busy working a couple of contracts since May. So, for the forseeable future, progress will be slower (unless/until other folks start contributing, of course!). For now, the emphasis for 0.8.0 is task refactoring, starting with seeing if we can leverage other libraries like league/pipeline.
Use the Twitter thread below to comment on this post: