This is an intermediate step after !!! FEATURE: Overhaul node uri building before we fully move to the new node address serialisation in the Neos Ui.
Everything was refactored here that does not require adjustments in the Neos Ui (and the workspace module was also not really touched).
avoid using the legacy node address instance in the code. The NodeAddressFactory is only used at the places where we still depend on the legacy format, but we create already new node address instances via createCoreNodeAddressFromLegacyUriString
removed the $contentStreamId field from the legacy NodeAddress already (as we can otherwise not transform a new node address to this one). Also this prevents the $contentStreamId field from accidentally being used again in the migration time.
removed the the unused legacy node address isInLiveWorkspace method.
The currently unused method Neos.Node.serializedNodeAddress(node) will return the new node address format
where previously Node $node was used to trigger property mapping (DataSourceController and WorkspaceController) we now pass the node as string and use the legacy node address factory to handle the legacy format manually. A followup will adjust everything to work with the new node address.
the unused linkinservice will use the new node address string format if a string is passed as $node
the Node property mappers were adjusted to use the new node address and not depend on the global active request handler
lint Neos.Workspace.Ui/Classes with phpstan
Upgrade instructions
This change is breaking for existing Neos 9 users as the node being property mapped will require a new serialised input.
public function someAction(Node $node): {}
In Neos 8.3 you could call this action with the node like
Solves: https://github.com/neos/neos-development-collection/issues/4873
This is an intermediate step after !!! FEATURE: Overhaul node uri building before we fully move to the new node address serialisation in the Neos Ui. Everything was refactored here that does not require adjustments in the Neos Ui (and the workspace module was also not really touched).
NodeAddressFactory
is only used at the places where we still depend on the legacy format, but we create already new node address instances viacreateCoreNodeAddressFromLegacyUriString
isInLiveWorkspace
method.Neos.Node.serializedNodeAddress(node)
will return the new node address formatNode $node
was used to trigger property mapping (DataSourceController
andWorkspaceController
) we now pass the node asstring
and use the legacy node address factory to handle the legacy format manually. A followup will adjust everything to work with the new node address.$node
Neos.Workspace.Ui/Classes
with phpstanUpgrade instructions
This change is breaking for existing Neos 9 users as the node being property mapped will require a new serialised input.
In Neos 8.3 you could call this action with the node like
in Neos9-dev it was
and now it must be the node address in json
NodeAddress::toJson()
to build such a uri you can simply use:
Review instructions
Checklist
FEATURE|TASK|BUGFIX
!!!
and have upgrade-instructions