All Versions
Latest Version
Avg Release Cycle
121 days
Latest Release
1468 days ago

Changelog History
Page 1

  • v5.1.0 Changes

    April 09, 2020
    • โž• Added Throttle support for async imports only.
  • v5.0.0 Changes

    December 08, 2019

    Porter v5 introduces asynchronous imports and complete strict type safety (excluding union types and generics).

    ๐Ÿ’ฅ Breaking changes

    • โœ‚ Removed support for PHP 5.5, 5.6 and 7.0.
    • โšก๏ธ Every interface has been updated to include return types which means all consuming projects must also add the same return type.
    • Replaced Connector::fetch string source parameter with new DataSource interface.
    • โœ‚ Removed ConnectionContext from Connector interface.
    • โž• Added SingleRecordResource interface that resources must implement to be used with Porter::importOne().
    • Prevented single record resources being imported with multi-record import methods.
    • Replaced RecoverableConnectorException with RecoverableException interface.
    • โœ‚ Removed failed abstractions: ConnectorOptions and EncapsulatedOptions.
    • โœ‚ Removed abstraction: CacheKeyGenerator.
    • ๐Ÿšš Moved ForeignResourceException to Porter's namespace.
  • v4.0.0 Changes

    April 09, 2018

    ๐Ÿš‘ Porter v4 fixes all known design flaws (#31, #43) and critically re-evaluates every part of Porter's design. All base classes have been discarded (AbstractProvider, AbstractResource), moving their code within Porter, relying solely on interfaces instead. This frees up the inheritance chain for applications to use as they wish, making it much easier to integrate Porter into existing projects.

    ๐Ÿ”€ The new design is much simpler, removing the redundant fetch() method from Provider and removing the redundant and confusing EncapsulatedOptions parameters from all fetch() methods. There is no longer any need to figure out how to merge different sets of options coming from different parts of the application because there is only one source of truth for connector options now, and they live within the connector itself, because it has a 1:1 relationship with its options.

    ๐Ÿ— Porter v4 is super slim; we no longer bundle any unnecessary dependencies such as connectors you don't need. connectors/http has also dropped URL building support and all the associated dependencies because it is not the job of the connector to build URLs; do this in providers if needed, by whatever mechanism best suits its needs.

    In development, on and off, for a little over a year, I sincerely hope you find this new version of Porter useful and easier to use than ever before.

    ๐Ÿ’ฅ Breaking changes

    • โœ‚ Removed AbstractResource. (#35)
    • ๐Ÿ”„ Changed Porter to no longer act as a repository of providers directly. Porter now requires a PSR-11 ContainerInterface which must contain the providers. (#38)
    • Porter is no longer bundled with any connectors. connectors/http and connectors/soap must be required manually if needed. (#39)
    • ๐Ÿ”„ Changed Connector to receive ConnectionContext as its first parameter. Context includes a retry() method to provide preconfigured, immutable durability features to the connector. (#42)
    • ๐Ÿšš Connector implementations no longer have to extend CachingConnector to provide caching facilities: all connectors can be decorated with CachingConnector with no prior knowledge of the existence of such facility. This completely removes the burden on implementations to be aware of caching concerns. (#44)
    • โœ‚ Removed AbstractProvider. (#41)
    • โœ‚ Removed EncapsulatedOptions parameter from Connector::fetch() method. (#48)
    • ๐Ÿ”„ Changed fetch exception handler from callable to FetchExceptionHandler to fix #43. (#50)
    • ๐Ÿ“š Forced RecordCollections to return arrays. Previously, the documentation claimed collections were iterators of arrays but the software did not enforce this; now it does. (#52)
  • v3.4.1 Changes

    June 20, 2017
    • โœ‚ Removed Net namespace and moved Connector implementations to separate repositories.
  • v3.4.0 Changes

    June 01, 2017
    • โž• Added SSL support to HttpConnector.
  • v3.3.0 Changes

    March 16, 2017
    • โž• Added custom cache key generation via CacheKeyGenerator interface. (@markchalloner)
    • ๐Ÿ›  Fixed durability not working for first iteration of generator (subsequent iterations still do not work #31).
  • v3.2.1 Changes

    March 15, 2017
    • ๐Ÿ›  Fixed illegal characters appearing in cache keys, violating PSR-6. (@samvdb)
  • v3.2.0 Changes

    March 11, 2017
    • โž• Added cache getter and setter to CachingConnector. (@markchalloner)
  • v3.1.0 Changes

    March 09, 2017
    • โž• Added response body to HttpServerException.
  • v3.0.0 Changes

    January 29, 2017
    • โž• Added Transformer interface.

    ๐Ÿ’ฅ Breaking changes

    Migrating to 3.0.0 only requires effort for users of filters, mappings or custom durability settings.

    ๐Ÿšš Filters and mappings were removed from ImportSpecification and reimplemented as transformers. Filters are reimplemented by FilterTransformer whilst mapping integration was moved to a separate project, MappingTransformer.

    ๐Ÿšš Durability settings were moved from Porter to the ImportSpecification, allowing settings to be customized per-import instead of using the same setting for all imports.

    • ๐Ÿ”จ Refactored filters into FilterTransformer.
    • โœ‚ Removed mappings from Porter.
    • ๐Ÿšš Moved durability methods from Porter to ImportSpecification.