[0.9.7.0] - 2024-02-10

Added

  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\EmitterBuilder::priority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\ExplorerBuilder::priority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\HttpHandlerBuilder::priority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\ReceiverBuilder::priority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\StatusReporterBuilder::priority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::getPriority and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::setPriority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::getPriority and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::setPriority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Token\HttpHandlerToken::getPriority and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\HttpHandlerToken::setPriority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::getPriority and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::setPriority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\Token\StatusReporterToken::getPriority and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\StatusReporterToken::setPriority to sort flow component within the stack
  • Add method \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::setDefaultPriority to set default position for flow components within the stack per source package
  • Add method \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::getDefaultFlowComponentPriority to set default position for flow components within the stack per source package

Changed

  • Change \Heptacom\HeptaConnect\Portal\Base\Support\Contract\DeepObjectIteratorContract::iterate to resolve nested iterables deferred instead of in the moment they are found to lower memory peaks during larger object inspection

[0.9.6.0] - 2023-07-10

Fixed

  • Fix emission check in implementation of \Heptacom\HeptaConnect\Portal\Base\Support\Contract\EntityStatusContract::isMappedByEmitter

[0.9.5.0] - 2023-05-27

Added

  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\PackageCollection as collection class for \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract
  • Add service Heptacom\HeptaConnect\Portal\Base\Portal\PackageCollection to portal-container, containing the portal, all portal-extensions and all packages involved in building the container
  • Add service Psr\Http\Message\ServerRequestFactoryInterface to portal-container
  • Add service Psr\Http\Message\UploadedFileFactoryInterface to portal-container
  • Add service Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpKernelInterface to portal-container to execute a \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterface from inside a portal
  • Add method \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandleContextInterface::forward to provide a guided usage of \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpKernelInterface
  • Add service Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageMultiPartFormDataBuilderInterface to build HTTP payloads for multipart messages

Changed

  • Allow handling of HTTP requests, even when no HTTP handler exists for the requested path. This means, middlewares for HTTP handlers will run for every request.
  • Add constant \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandleContextInterface::REQUEST_ATTRIBUTE_IS_STACK_EMPTY to identify an attribute in \Psr\Http\Message\ServerRequestInterface objects. This attribute holds a value, that indicates whether the related \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterface is empty.

Fixed

  • Remove a step in building a portal-container that would remove all services that extend \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract

[0.9.4.0] - 2023-03-04

Added

  • Add composer dependency symfony/config: ^4.4 || ^5.0 and symfony/dependency-injection: ^4.4 || ^5.0
  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract as base class for additional packages, other than portals and portal extensions
  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::buildContainer allowing packages to influence the build-process of the portal-container
  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::getAdditionalPackages allowing packages to provide additional packages. These packages may also influence the build-process of the portal-container.
  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::registerContainerFile allowing packages to automatically register their service definition files (e. g. Resources/config/services.xml)
  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Exception\DelegatingLoaderLoadException for when a service definition file cannot be loaded
  • Add exception code 1674923696 for when a service definition file cannot be loaded
  • Add interface \Heptacom\HeptaConnect\Portal\Base\FlowComponent\Contract\FlowComponentStackIdentifierInterface to identify flow component stack identifier and all their commonly shared features
  • Add class \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier to hold the identifying components of an HTTP handler stack being the portal node key and served path
  • Add class \Heptacom\HeptaConnect\Portal\Base\Web\Http\ServerRequestCycle to hold a server request and response, that correspond to a single HTTP request/response cycle
  • Add service of \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageCurlShellFormatterContract implementing \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageFormatterContract to format HTTP messages described in PSR-7 into cURL shell commands
  • Add service of \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageRawHttpFormatterContract implementing \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageFormatterContract as default provider to format HTTP messages described in PSR-7 into raw HTTP traffic, that can be used with TCP networking tools

Deprecated

  • Deprecate and discourage usage of \Heptacom\HeptaConnect\Dataset\Base\Contract\DeferralAwareInterface as it has not been a practical solution to defer closure execution in a different process
  • Deprecate extending method \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::__construct as this method will become final in version 0.10

[0.9.3.0] - 2022-11-26

Added

  • Add service of \Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface to the portal node container to interact with filesystem abstraction
  • Add exception \Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Exception\UnexpectedFormatOfUriException to indicate usage unexpected parameters with \Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface

Deprecated

  • Deprecate service League\Flysystem\FilesystemInterface in the portal node container. Use \Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface in combination with native stream functions like fopen, fread, fwrite, fclose, file_get_contents and file_put_contents instead

[0.9.2.0] - 2022-10-16

Added

  • Add \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientMiddlewareInterface. Every service implementing this interface will automatically be tagged with heptaconnect.http.client.middleware. Middlewares will be executed for every outbound HTTP request via the \Psr\Http\Client\ClientInterface.
  • Add composer dependency psr/http-server-handler: ^1.0 and psr/http-server-middleware: ^1.0 to support PSR-15 middlewares for HTTP handlers. Every service implementing \Psr\Http\Server\MiddlewareInterface will automatically be tagged with heptaconnect.http.handler.middleware. Middlewares will be executed for every inbound HTTP request via \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract.

Fixed

  • Add composer dependency on psr/http-client: ^1.0

[0.9.1.0] - 2022-08-15

Added

  • Extract similarities of \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalContract and \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalExtensionContract into a new common base class \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract
  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::getContainerExcludedClasses to allow portals and portal extensions to add and remove automatically excluded classes from container auto-prototyping

Deprecated

  • Deprecate \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PathMethodsTrait as content will be moved to \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract without replacement trait

Fixed

  • Change order of stack handling and remove fallback value for the reported topic in \Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterContract::report

[0.9.0.0] - 2022-04-02

Added

  • Add structure to store code origin data in \Heptacom\HeptaConnect\Portal\Base\FlowComponent\CodeOrigin
  • Add exception \Heptacom\HeptaConnect\Portal\Base\FlowComponent\Exception\CodeOriginNotFound to indicate issues when looking for code origins
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getRunMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getOptionsMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getGetMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getPostMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getPatchMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getPutMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler::getDeleteMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerCodeOriginFinderInterface to find code origin of \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::getRunMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::getBatchMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::getExtendMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterCodeOriginFinderInterface to find code origin of \Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterContract
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Explorer::getRunMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Explorer::getIsAllowedMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerCodeOriginFinderInterface to find code origin of \Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerContract
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Receiver::getRunMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Receiver::getBatchMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverCodeOriginFinderInterface to find code origin of \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverContract
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\Component\StatusReporter::getRunMethod to expose configured callback for origin access reading
  • Add \Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterCodeOriginFinderInterface to find code origin of \Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterContract
  • Add method for portal extensions \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalExtensionContract::isActiveByDefault to allow for default activity state configuration
  • Add supporting filter method \Heptacom\HeptaConnect\Portal\Base\Portal\PortalExtensionCollection::bySupport to filter portal extensions by their supported portal class
  • Add new service Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientContract to container as an alternative to Psr\Http\Client\ClientInterface with behaviour by configuration with e.g. \Heptacom\HeptaConnect\Portal\Base\Web\Http\Support\DefaultRequestHeaders
  • Add class \Heptacom\HeptaConnect\Portal\Base\File\FileReferenceFactoryContract to create instances of \Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContract
  • Add class \Heptacom\HeptaConnect\Portal\Base\File\FileReferenceResolverContract to resolve instances of \Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContract to instances of \Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContract
  • Add class \Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContract to access file references in read operations
  • Add new service \Heptacom\HeptaConnect\Portal\Base\File\FileReferenceFactoryContract to container to create file references from various sources
  • Add new service \Heptacom\HeptaConnect\Portal\Base\File\FileReferenceResolverContract to container to resolve file references for read operations
  • Add methods \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\PortalNodeKeyInterface::withAlias and \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\PortalNodeKeyInterface::withoutAlias to flag a portal node key to prefer the display as alias or storage key
  • Make $this available in closures for short-notation flow-components with \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent

Changed

  • Use container tags heptaconnect.flow_component.status_reporter_source, heptaconnect.flow_component.emitter_source, heptaconnect.flow_component.explorer_source, heptaconnect.flow_component.receiver_source, heptaconnect.flow_component.web_http_handler_source instead of heptaconnect.flow_component.emitter, heptaconnect.flow_component.emitter_decorator, heptaconnect.flow_component.explorer, heptaconnect.flow_component.explorer_decorator, heptaconnect.flow_component.receiver, heptaconnect.flow_component.receiver_decorator and heptaconnect.flow_component.web_http_handler to collect flow component services
  • Short-noted flow components load on first flow component usage instead on container building
  • Use instance of \Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterContract in log context instead of its class in the message in \Heptacom\HeptaConnect\Portal\Base\Emission\EmitterStack::next
  • Use instance of \Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerContract in log context instead of its class in the message in \Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerStack::next
  • Use instance of \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverContract in log context instead of its class in the message in \Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverStack::next
  • Use instance of \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract in log context instead of its class in the message in \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStack::next
  • Add dependency to \Psr\Log\LoggerInterface into \Heptacom\HeptaConnect\Portal\Base\StatusReporting\StatusReporterStack to log instance of \Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterContract::next
  • Set array-key type to return of \Heptacom\HeptaConnect\Portal\Base\Emission\EmitterCollection::bySupport, \Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerCollection::bySupport, \Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverCollection::bySupport, \Heptacom\HeptaConnect\Portal\Base\StatusReporting\StatusReporterCollection::bySupportedTopic and \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection::bySupport to int
  • Add final modifier to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter, \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Explorer, \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler, \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Receiver, \Heptacom\HeptaConnect\Portal\Base\Builder\Component\StatusReporter, \Heptacom\HeptaConnect\Portal\Base\Emission\EmitterStack, \Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerStack, \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentStruct, \Heptacom\HeptaConnect\Portal\Base\Profiling\NullProfiler, \Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverStack, \Heptacom\HeptaConnect\Portal\Base\StatusReporting\StatusReporterStack and \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStack to ensure correct usage of implementation. Decoration by their interfaces or base classes is still possible

Removed

  • Remove container service ids Heptacom\HeptaConnect\Portal\Base\Emission\EmitterCollection, Heptacom\HeptaConnect\Portal\Base\Emission\EmitterCollection.decorator, Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerCollection, Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerCollection.decorator, Heptacom\HeptaConnect\Portal\Base\StatusReporting\StatusReporterCollection, Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverCollection, Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverCollection.decorator, Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection and Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection.decorator due to refactoring of flow component stack building
  • Remove contracts and exceptions \Heptacom\HeptaConnect\Portal\Base\Cronjob\Contract\CronjobServiceInterface, \Heptacom\HeptaConnect\Portal\Base\Cronjob\Contract\CronjobRunInterface, \Heptacom\HeptaConnect\Portal\Base\Cronjob\Contract\CronjobInterface, \Heptacom\HeptaConnect\Portal\Base\Cronjob\Contract\CronjobHandlerContract, \Heptacom\HeptaConnect\Portal\Base\Cronjob\Contract\CronjobContextInterface, \Heptacom\HeptaConnect\Portal\Base\Cronjob\Exception\InvalidCronExpressionException, \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\CronjobKeyInterface and \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\CronjobRunKeyInterface as the feature of cronjobs in its current implementation is removed
  • Remove deprecated methods \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::canSet and \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::canGet
  • Remove unused \Heptacom\HeptaConnect\Portal\Base\Mapping\TypedMappedDatasetEntityCollection
  • Remove deprecated method Heptacom\HeptaConnect\Portal\Base\Publication\Contract\PublisherInterface::publish
  • Remove unused \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\MappingKeyInterface and \Heptacom\HeptaConnect\Portal\Base\StorageKey\MappingKeyCollection
  • Move unused \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\RouteKeyInterface and \Heptacom\HeptaConnect\Portal\Base\StorageKey\RouteKeyCollection to package heptacom/heptaconnect-storage-base as \Heptacom\HeptaConnect\Storage\Base\Contract\RouteKeyInterface and \Heptacom\HeptaConnect\Storage\Base\RouteKeyCollection
Past changes

[0.8.4] - 2021-12-16

Removed

  • Remove the code for unit tests, configuration for style checks as well as the Makefile

[0.8.0] - 2021-11-22

Added

  • Add composer dependency on ext-mbstring:*
  • Add composer dependency on psr/event-dispatcher:^1.0
  • Add post-processing data bag class \Heptacom\HeptaConnect\Portal\Base\Reception\Support\PostProcessorDataBag
  • Add method \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiveContextInterface::getEventDispatcher for reception event processing
  • Add method \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiveContextInterface::getPostProcessingBag to access post-processing data bag
  • Add exception code 1636887426 to \Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream::copy when source stream is invalid
  • Add exception code 1636887427 to \Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream::copy when source stream can't be read from
  • Add exception code 1636887428 to \Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream::copy when result stream can't be created
  • Add exception code 1636887429 to \Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream::copy when interim stream can't be created
  • Add new flow component \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract and \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection
  • Add interface \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandleContextInterface for new flow component
  • Add interface \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterface and implementation \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStack for new flow component
  • Add log message code 1636735335 to \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract::handleNext when execution of the next handler failed
  • Add log message code 1636735336 to \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract::handleCurrent when execution of the current handler failed
  • Add \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::httpHandler, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::buildHttpHandlers, \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\HttpHandlerToken and \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\HttpHandlerBuilder to allow short notation for new flow component \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract
  • Add log message code 1636791700 to \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::buildHttpHandlers, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::buildReceivers and \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::buildEmitters when building flow components and having a configuration conflict
  • Add \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerUrlProviderInterface to resolve URLs for flow component \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract paths
  • Add exception \Heptacom\HeptaConnect\Portal\Base\Builder\Exception\InvalidResultException to group cases when short-noted closures are return incorrect values
  • Add exception code 1637017868 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::batch when short-noted batch method returns an invalid value in iteration
  • Add exception code 1637017869 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::batch when short-noted batch method returns invalid value
  • Add exception code 1637017870 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::run when short-noted run method returns invalid value
  • Add exception code 1637017871 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Emitter::extend when short-noted extend method returns invalid value
  • Add exception code 1637034100 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Explorer::run when short-noted run method returns an invalid value in iteration
  • Add exception code 1637034101 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Explorer::run when short-noted run method returns invalid value
  • Add exception code 1637034102 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\Explorer::isAllowed when short-noted isAllowed method returns invalid value
  • Add exception code 1637440327 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\HttpHandler when any short-noted method returns invalid value
  • Add exception code 1637036888 to \Heptacom\HeptaConnect\Portal\Base\Builder\Component\StatusReporter::run when short-noted run method returns invalid value

Changed

  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Publication\Contract\PublisherInterface::publish from $datasetEntityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitContextInterface::markAsFailed from $datasetEntityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentCollection::filterByEntityType from $datasetEntityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentStruct::__construct from $datasetEntityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Emission\EmitterCollection::bySupport from $entityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Emission\EmitterStack::__construct from $entityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerCollection::bySupport from $entityClassName to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverCollection::bySupport from $entityClassName to $entityType
  • Change method name from \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentStruct::getDatasetEntityClassName to \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentStruct::getEntityType
  • Change method name from \Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingComponentStructContract::getDatasetEntityClassName to \Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingComponentStructContract::getEntityType
  • Change method name from \Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterface::getDatasetEntityClassName to \Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterface::getEntityType
  • Change method name from \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentCollection::getDatasetEntityClassNames to \Heptacom\HeptaConnect\Portal\Base\Mapping\MappingComponentCollection::getEntityTypes
  • Change method name from \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\RouteInterface::getEntityClassName to \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\RouteInterface::getEntityType
  • As \Closure has a more defined interface for analyzing compared to callable and the expected use-case for short-noted flow components are anonymous functions, the return types changed from callable to \Closure in \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::getBatch, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::getRun, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::getExtend, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::getRun, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::getIsAllowed, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::getBatch, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::getRun and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\StatusReporterToken::getRun
  • As \Closure has a more defined interface for analyzing compared to callable and the expected use-case for short-noted flow components are anonymous functions, the parameter types changed from callable to \Closure in \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\EmitterBuilder::batch, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\EmitterBuilder::run, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\EmitterBuilder::extend, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\ExplorerBuilder::run, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\ExplorerBuilder::isAllowed, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\ReceiverBuilder::batch, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\ReceiverBuilder::run, \Heptacom\HeptaConnect\Portal\Base\Builder\Builder\StatusReporterBuilder::run, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::explorer, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::emitter, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::receiver, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::statusReporter, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::setBatch, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::setRun, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::setExtend, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::setRun, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::setIsAllowed, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::setBatch, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::setRun, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\StatusReporterToken::setRun and \Heptacom\HeptaConnect\Portal\Base\Builder\ResolveArgumentsTrait::resolveArguments
  • Add throwing of exception \Heptacom\HeptaConnect\Portal\Base\Serialization\Exception\StreamCopyException to \Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream::copy

Removed

  • Remove \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\WebhookKeyInterface
  • Remove \Heptacom\HeptaConnect\Portal\Base\StorageKey\WebhookKeyCollection
  • Remove \Heptacom\HeptaConnect\Portal\Base\Webhook\Contract\WebhookContextInterface
  • Remove \Heptacom\HeptaConnect\Portal\Base\Webhook\Contract\WebhookHandlerContract
  • Remove \Heptacom\HeptaConnect\Portal\Base\Webhook\Contract\WebhookInterface in favour of new flow component \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract
  • Remove \Heptacom\HeptaConnect\Portal\Base\Webhook\Contract\WebhookServiceInterface in favour of new flow component \Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract and \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerUrlProviderInterface
  • Remove unused \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\RouteInterface

Fixed

  • Change type hint from string to class-string<\Heptacom\HeptaConnect\Dataset\Base\Contract\DatasetEntityContract> for parameters in \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::explorer, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::emitter, \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::receiver, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::__construct, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::__construct and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::__construct
  • Change type hint from string to class-string<\Heptacom\HeptaConnect\Dataset\Base\Contract\DatasetEntityContract> for return type in \Heptacom\HeptaConnect\Portal\Base\Builder\Token\EmitterToken::getType, \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ExplorerToken::getType and \Heptacom\HeptaConnect\Portal\Base\Builder\Token\ReceiverToken::getType
  • Allow missing types in short-noted flow components that are resolved by name by changing string $parameterType to ?string $parameterType in function arguments in \Heptacom\HeptaConnect\Portal\Base\Builder\ResolveArgumentsTrait and their usages
  • Fixe return type hint on \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverStackInterface::next to return an iterable of \Heptacom\HeptaConnect\Dataset\Base\Contract\DatasetEntityContract instead of \Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterface and therefore returns like \Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverContract::receive

[0.7.0] - 2021-09-25

Added

  • Add \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::delete as replacement for \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::unset. This method returns a boolean instead of throwing exceptions.
  • Add composer dependency on psr/simple-cache:^1.0

Changed

  • \Heptacom\HeptaConnect\Portal\Base\Support\Contract\DeepObjectIteratorContract::iterate caches object iteration strategies to improve performance
  • \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface implements \Psr\SimpleCache\CacheInterface.
  • \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::set no longer throws exceptions on failure but returns a boolean instead.

Removed

  • \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::unset has been replaced by \Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface::delete.

Fixed

  • \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::reset now cleans up status reporter building instructions that got previously registered with \Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent::statusReporter
  • \Heptacom\HeptaConnect\Portal\Base\Support\Contract\DeepObjectIteratorContract::iterate drops usage of \spl_object_hash to not break on garbage collection