Changelog History
Page 1
-
v5.1.0 Changes
April 09, 2020- โ Added
Throttle
support for async imports only.
- โ Added
-
v5.0.0 Changes
December 08, 2019Porter 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 newDataSource
interface. - โ Removed
ConnectionContext
fromConnector
interface. - โ Added
SingleRecordResource
interface that resources must implement to be used withPorter::importOne()
. - Prevented single record resources being imported with multi-record import methods.
- Replaced
RecoverableConnectorException
withRecoverableException
interface. - โ Removed failed abstractions:
ConnectorOptions
andEncapsulatedOptions
. - โ 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 fromProvider
and removing the redundant and confusingEncapsulatedOptions
parameters from allfetch()
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
andconnectors/soap
must be required manually if needed. (#39) - ๐ Changed
Connector
to receiveConnectionContext
as its first parameter. Context includes aretry()
method to provide preconfigured, immutable durability features to the connector. (#42) - ๐
Connector
implementations no longer have to extendCachingConnector
to provide caching facilities: all connectors can be decorated withCachingConnector
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 fromConnector::fetch()
method. (#48) - ๐ Changed fetch exception handler from
callable
toFetchExceptionHandler
to fix #43. (#50) - ๐ Forced
RecordCollections
to returnarrays
. Previously, the documentation claimed collections were iterators of arrays but the software did not enforce this; now it does. (#52)
- โ Removed
-
v3.4.1 Changes
June 20, 2017- โ Removed
Net
namespace and movedConnector
implementations to separate repositories.
- โ Removed
-
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).
- โ Added custom cache key generation via
-
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)
- โ Added cache getter and setter to
-
v3.1.0 Changes
March 09, 2017- โ Added response body to
HttpServerException
.
- โ Added response body to
-
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 byFilterTransformer
whilst mapping integration was moved to a separate project, MappingTransformer.๐ Durability settings were moved from
Porter
to theImportSpecification
, 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
toImportSpecification
.
- โ Added