Skip to content

Releases: cloudcreativity/ddd-modules

v3.0.0

29 Jan 16:03
Compare
Choose a tag to compare

Upgrading

Refer to the Upgrade Guide here.

What's Changed

  • Feature: separate out command queuing to a command queuer driving port by @lindyhopchris in #19
  • Refer to the changelog for a full list of changes.

Full Changelog: v2.0.0...v3.0.0

v3.0.0-rc.2

18 Jan 15:03
Compare
Choose a tag to compare
v3.0.0-rc.2 Pre-release
Pre-release

Upgrading

composer config minimum-stability rc
composer require cloudcreativity/ddd-modules:^3.0

Changelog

Added

  • New test classes for driven ports and the domain event dispatcher. These are intended to make setting up unit and integration tests easier. They can also be used as fakes while you build your real implementation. The classes are in the Testing namespace and are:
    • Testing\FakeDomainEventDispatcher
    • Testing\FakeExceptionReporter
    • Testing\FakeOutboundEventPublisher
    • Testing\FakeQueue
    • Testing\FakeUnitOfWork
  • Properties on message classes can now be marked as sensitive so that they are not logged. This is an alternative to having to implement the ContextProvider interface. Mark a property as sensitive using the CloudCreativity\Modules\Toolkit\Loggable\Sensitive attribute.

Full Changelog: v3.0.0-rc.1...v3.0.0-rc.2

v3.0.0-rc.1

12 Jan 18:53
Compare
Choose a tag to compare
v3.0.0-rc.1 Pre-release
Pre-release

Upgrading

composer config minimum-stability rc
composer require cloudcreativity/ddd-modules:^3.0

What's Changed

  • feat!: separate out command queuing to a command queuer driving port by @lindyhopchris in #19
  • refactor!: move message interfaces to the toolkit namespace.

Full Changelog: v2.0.0...v3.0.0-rc.1

v2.0.0

07 Dec 15:52
Compare
Choose a tag to compare

Upgrading

Refer to the Upgrade Guide here.

What's Changed

Full Changelog: v1.2.0...v2.0.0

v2.0.0-rc.3

13 Oct 15:49
Compare
Choose a tag to compare
v2.0.0-rc.3 Pre-release
Pre-release

Upgrading

composer require "cloudcreativity/ddd-modules:^2.0.0-rc.3"

Changelog

Added

  • The result class now has a Result::fail() static method to create a failed result. This is an alias of the existing Result::failed() method.
  • BREAKING The Entity interface (and therefore the Aggregate interface too) now has a getIdOrFail() method on it. Although technically breaking, if you are using the IsEntity or IsEntityWithNullableId traits then this method is already implemented.
  • New AggregateRoot interface so that an aggregate root can be distinguished from a regular aggregate or entity.

Changed

  • Remove deprecation message in PHP 8.4.

Full Changelog: v2.0.0-rc.2...v2.0.0-rc.3

v2.0.0-rc.2

27 Jul 12:38
Compare
Choose a tag to compare
v2.0.0-rc.2 Pre-release
Pre-release

Upgrading

composer require "cloudcreativity/ddd-modules:^2.0.0-rc.2"

Changelog

Added

  • The Uuid identifier class now has a getBytes() method
  • Can now get a nil UUID from the Uuid::nil() static method.

Changed

  • Made resolution of inner handlers lazy in all buses. In several the handler was immediately resolved, so that the handler middleware could be calculated. Buses that support handler middleware now first pipe through the bus middleware, then resolve the inner handler, then pipe through the handler middleware. This allows inner handler constructor injected dependencies to be lazily resolved after the bus middleware has executed. This is important when using the setup and teardown middleware for bootstrapping services that may be injected into the inner handler. Buses that now lazily resolve inner handlers are:
    • Command bus
    • Query bus
    • Inbound integration event bus
    • Outbound integration event bus
    • Queue bus

Full Changelog: v2.0.0-rc.1...v2.0.0-rc.2

v2.0.0-rc.1

08 May 18:38
Compare
Choose a tag to compare
v2.0.0-rc.1 Pre-release
Pre-release

What's Changed

This is a large refactoring, as we move to a hexagonal architecture. For a full discussion of this and how to upgrade, refer to the Upgrade Guide.

Additionally, there is the changelog.

Full Changelog: v1.2.0...v2.0.0-rc.1

Status

Although this is marked as a pre-release, it is considered stable enough to use. We only plan bug fixes - there are no plans for additional refactoring.

v1.2.0

05 Apr 18:54
Compare
Choose a tag to compare

Changelog

Added

  • New integration event middleware:
    • NotifyInUnitOfWork for notifiers that need to be executed in a unit of work. Note that the documentation for Integration Events incorrectly showed the ExecuteInUnitOfWork command middleware being used.
    • SetupBeforeEvent for doing setup work before an integration event is published or notified, and optionally teardown work after.
    • TeardownAfterEvent for doing teardown work after an integration event is published or notified.
    • LogInboundEvent for logging that an integration event is being received.
    • LogOutboundEvent for logging that an integration event is being published.

Deprecated

  • The following integration event middleware are deprecated and will be removed in 2.0:
    • LogInboundIntegrationEvent: use LogInboundEvent instead.
    • LogOutboundIntegrationEvent: use LogOutboundEvent instead.

Full Changelog: v1.1.0...v1.2.0

v1.1.0

05 Apr 18:00
Compare
Choose a tag to compare

Changelog

Added

  • Allow an outbound integration event handler to implement a publish() method. The handle() method is still supported, but publish() makes more sense to describe what the handler does with the event it has been given.

Fixed

  • Added missing UUID 7 and 8 methods to the UUID factory interface.
  • The Result::error() method now correctly returns the first error message even if it is not on the first error in the list.

Full Changelog: v1.0.0...v1.1.0

v1.0.0

09 Mar 10:29
Compare
Choose a tag to compare

Changelog

Removed

  • BREAKING The following deprecated interfaces have been removed:
    • Bus\CommandInterface use Toolkit\Messages\CommandInterface instead.
    • Bus\QueryInterface use Toolkit\Messages\QueryInterface instead.
    • Bus\DispatchThroughMiddleware use Toolkit\Messages\DispatchThroughMiddleware instead.
    • Infrastructure\Log\ContextProviderInterface use Toolkit\Loggable\ContextProviderInterface instead.

What's Changed

Full Changelog: v1.0.0-rc.2...v1.0.0