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
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\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
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
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::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