diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentGraph.php b/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentGraph.php index dd9afe2dc83..40658a0c1e1 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentGraph.php +++ b/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentGraph.php @@ -186,7 +186,6 @@ public function findNodeAggregateById( return $this->nodeFactory->mapNodeRowsToNodeAggregate( $this->fetchRows($queryBuilder), $this->workspaceName, - $this->contentStreamId, VisibilityConstraints::withoutRestrictions() ); } @@ -247,7 +246,6 @@ public function findParentNodeAggregateByChildOriginDimensionSpacePoint(NodeAggr return $this->nodeFactory->mapNodeRowsToNodeAggregate( $this->fetchRows($queryBuilder), $this->workspaceName, - $this->contentStreamId, VisibilityConstraints::withoutRestrictions() ); } @@ -334,7 +332,6 @@ private function mapQueryBuilderToNodeAggregate(QueryBuilder $queryBuilder): ?No return $this->nodeFactory->mapNodeRowsToNodeAggregate( $this->fetchRows($queryBuilder), $this->workspaceName, - $this->contentStreamId, VisibilityConstraints::withoutRestrictions() ); } @@ -348,7 +345,6 @@ private function mapQueryBuilderToNodeAggregates(QueryBuilder $queryBuilder): No return $this->nodeFactory->mapNodeRowsToNodeAggregates( $this->fetchRows($queryBuilder), $this->workspaceName, - $this->contentStreamId, VisibilityConstraints::withoutRestrictions() ); } diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentSubgraph.php b/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentSubgraph.php index fb67effe7f6..810a095069f 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentSubgraph.php +++ b/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/ContentSubgraph.php @@ -300,7 +300,6 @@ public function findSubtree(NodeAggregateId $entryNodeAggregateId, FindSubtreeFi $node = $this->nodeFactory->mapNodeRowToNode( $nodeData, $this->workspaceName, - $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints ); @@ -333,7 +332,6 @@ public function findAncestorNodes(NodeAggregateId $entryNodeAggregateId, FindAnc return $this->nodeFactory->mapNodeRowsToNodes( $nodeRows, $this->workspaceName, - $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints ); @@ -387,7 +385,6 @@ public function findClosestNode(NodeAggregateId $entryNodeAggregateId, FindClose return $this->nodeFactory->mapNodeRowsToNodes( $nodeRows, $this->workspaceName, - $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints )->first(); @@ -407,7 +404,6 @@ public function findDescendantNodes(NodeAggregateId $entryNodeAggregateId, FindD return $this->nodeFactory->mapNodeRowsToNodes( $nodeRows, $this->workspaceName, - $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints ); @@ -679,7 +675,6 @@ private function fetchNode(QueryBuilder $queryBuilder): ?Node return $this->nodeFactory->mapNodeRowToNode( $nodeRow, $this->workspaceName, - $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints ); @@ -695,7 +690,6 @@ private function fetchNodes(QueryBuilder $queryBuilder): Nodes return $this->nodeFactory->mapNodeRowsToNodes( $nodeRows, $this->workspaceName, - $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints ); @@ -717,7 +711,12 @@ private function fetchReferences(QueryBuilder $queryBuilder): References } catch (DBALException $e) { throw new \RuntimeException(sprintf('Failed to fetch references: %s', $e->getMessage()), 1678364944, $e); } - return $this->nodeFactory->mapReferenceRowsToReferences($referenceRows, $this->workspaceName, $this->contentStreamId, $this->dimensionSpacePoint, $this->visibilityConstraints); + return $this->nodeFactory->mapReferenceRowsToReferences( + $referenceRows, + $this->workspaceName, + $this->dimensionSpacePoint, + $this->visibilityConstraints + ); } /** diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/NodeFactory.php b/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/NodeFactory.php index 9b6be9e6e63..d16d803f788 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/NodeFactory.php +++ b/Neos.ContentGraph.DoctrineDbalAdapter/src/Domain/Repository/NodeFactory.php @@ -64,7 +64,6 @@ public function __construct( public function mapNodeRowToNode( array $nodeRow, WorkspaceName $workspaceName, - ContentStreamId $contentStreamId, DimensionSpacePoint $dimensionSpacePoint, VisibilityConstraints $visibilityConstraints ): Node { @@ -85,8 +84,7 @@ public function mapNodeRowToNode( isset($nodeRow['lastmodified']) ? self::parseDateTimeString($nodeRow['lastmodified']) : null, isset($nodeRow['originallastmodified']) ? self::parseDateTimeString($nodeRow['originallastmodified']) : null, ), - $visibilityConstraints, - $contentStreamId + $visibilityConstraints ); } @@ -96,7 +94,6 @@ public function mapNodeRowToNode( public function mapNodeRowsToNodes( array $nodeRows, WorkspaceName $workspaceName, - ContentStreamId $contentStreamId, DimensionSpacePoint $dimensionSpacePoint, VisibilityConstraints $visibilityConstraints ): Nodes { @@ -104,7 +101,6 @@ public function mapNodeRowsToNodes( array_map(fn (array $nodeRow) => $this->mapNodeRowToNode( $nodeRow, $workspaceName, - $contentStreamId, $dimensionSpacePoint, $visibilityConstraints ), $nodeRows) @@ -125,7 +121,6 @@ public function createPropertyCollectionFromJsonString(string $jsonString): Prop public function mapReferenceRowsToReferences( array $nodeRows, WorkspaceName $workspaceName, - ContentStreamId $contentStreamId, DimensionSpacePoint $dimensionSpacePoint, VisibilityConstraints $visibilityConstraints ): References { @@ -134,7 +129,6 @@ public function mapReferenceRowsToReferences( $node = $this->mapNodeRowToNode( $nodeRow, $workspaceName, - $contentStreamId, $dimensionSpacePoint, $visibilityConstraints ); @@ -157,7 +151,6 @@ public function mapReferenceRowsToReferences( public function mapNodeRowsToNodeAggregate( array $nodeRows, WorkspaceName $workspaceName, - ContentStreamId $contentStreamId, VisibilityConstraints $visibilityConstraints ): ?NodeAggregate { if (empty($nodeRows)) { @@ -184,7 +177,6 @@ public function mapNodeRowsToNodeAggregate( $nodesByOccupiedDimensionSpacePoint[$occupiedDimensionSpacePoint->hash] = $this->mapNodeRowToNode( $nodeRow, $workspaceName, - $contentStreamId, $occupiedDimensionSpacePoint->toDimensionSpacePoint(), $visibilityConstraints ); @@ -230,7 +222,6 @@ public function mapNodeRowsToNodeAggregate( $nodesByCoveredDimensionSpacePoints, OriginByCoverage::fromArray($occupationByCovering), $dimensionSpacePointsBySubtreeTags, - $contentStreamId, ); } @@ -241,7 +232,6 @@ public function mapNodeRowsToNodeAggregate( public function mapNodeRowsToNodeAggregates( array $nodeRows, WorkspaceName $workspaceName, - ContentStreamId $contentStreamId, VisibilityConstraints $visibilityConstraints ): NodeAggregates { if (empty($nodeRows)) { @@ -274,7 +264,6 @@ public function mapNodeRowsToNodeAggregates( [$rawNodeAggregateId][$occupiedDimensionSpacePoint->hash] = $this->mapNodeRowToNode( $nodeRow, $workspaceName, - $contentStreamId, $occupiedDimensionSpacePoint->toDimensionSpacePoint(), $visibilityConstraints ); @@ -338,7 +327,6 @@ public function mapNodeRowsToNodeAggregates( $occupationByCoveringByNodeAggregate[$rawNodeAggregateId] ), $dimensionSpacePointsBySubtreeTagsByNodeAggregate[$rawNodeAggregateId], - $contentStreamId, ); } diff --git a/Neos.ContentGraph.PostgreSQLAdapter/src/Domain/Repository/NodeFactory.php b/Neos.ContentGraph.PostgreSQLAdapter/src/Domain/Repository/NodeFactory.php index 4fa61afde28..3a8068b68dd 100644 --- a/Neos.ContentGraph.PostgreSQLAdapter/src/Domain/Repository/NodeFactory.php +++ b/Neos.ContentGraph.PostgreSQLAdapter/src/Domain/Repository/NodeFactory.php @@ -65,8 +65,7 @@ public function __construct( public function mapNodeRowToNode( array $nodeRow, VisibilityConstraints $visibilityConstraints, - ?DimensionSpacePoint $dimensionSpacePoint = null, - ?ContentStreamId $contentStreamId = null + ?DimensionSpacePoint $dimensionSpacePoint = null ): Node { return Node::create( $this->contentRepositoryId, @@ -92,7 +91,6 @@ public function mapNodeRowToNode( isset($nodeRow['originallastmodified']) ? self::parseDateTimeString($nodeRow['originallastmodified']) : null, ), $visibilityConstraints, - $contentStreamId ?: ContentStreamId::fromString($nodeRow['contentstreamid']), ); } @@ -101,16 +99,14 @@ public function mapNodeRowToNode( */ public function mapNodeRowsToNodes( array $nodeRows, - VisibilityConstraints $visibilityConstraints, - ContentStreamId $contentStreamId = null + VisibilityConstraints $visibilityConstraints ): Nodes { $nodes = []; foreach ($nodeRows as $nodeRow) { $nodes[] = $this->mapNodeRowToNode( $nodeRow, $visibilityConstraints, - null, - $contentStreamId + null ); } @@ -122,8 +118,7 @@ public function mapNodeRowsToNodes( */ public function mapReferenceRowsToReferences( array $referenceRows, - VisibilityConstraints $visibilityConstraints, - ContentStreamId $contentStreamId = null + VisibilityConstraints $visibilityConstraints ): References { $references = []; foreach ($referenceRows as $referenceRow) { @@ -131,8 +126,7 @@ public function mapReferenceRowsToReferences( $this->mapNodeRowToNode( $referenceRow, $visibilityConstraints, - null, - $contentStreamId + null ), ReferenceName::fromString($referenceRow['referencename']), $referenceRow['referenceproperties'] @@ -205,8 +199,7 @@ public function mapNodeRowsToNodeAggregate( $node = $this->mapNodeRowToNode( $nodeRow, $visibilityConstraints, - null, - $contentStreamId + null ); $nodeAggregateId = $nodeAggregateId ?: NodeAggregateId::fromString($nodeRow['nodeaggregateid']); @@ -247,7 +240,6 @@ public function mapNodeRowsToNodeAggregate( OriginByCoverage::fromArray($occupationByCovered), // TODO implement (see \Neos\ContentGraph\DoctrineDbalAdapter\Domain\Repository\NodeFactory::mapNodeRowsToNodeAggregate()) DimensionSpacePointsBySubtreeTags::create(), - $contentStreamId, ); } @@ -292,8 +284,7 @@ public function mapNodeRowsToNodeAggregates(array $nodeRows, VisibilityConstrain $node = $this->mapNodeRowToNode( $nodeRow, $visibilityConstraints, - null, - $contentStreamId + null ); $nodeAggregateIds[$key] = NodeAggregateId::fromString( $nodeRow['nodeaggregateid'] @@ -346,7 +337,6 @@ public function mapNodeRowsToNodeAggregates(array $nodeRows, VisibilityConstrain OriginByCoverage::fromArray($occupationByCovered[$key]), // TODO implement (see \Neos\ContentGraph\DoctrineDbalAdapter\Domain\Repository\NodeFactory::mapNodeRowsToNodeAggregates()) DimensionSpacePointsBySubtreeTags::create(), - $contentStreamId, ); } diff --git a/Neos.ContentRepository.Core/Classes/CommandHandler/CommandResult.php b/Neos.ContentRepository.Core/Classes/CommandHandler/CommandResult.php index 515309a4974..626a2b56381 100644 --- a/Neos.ContentRepository.Core/Classes/CommandHandler/CommandResult.php +++ b/Neos.ContentRepository.Core/Classes/CommandHandler/CommandResult.php @@ -12,16 +12,12 @@ * * This will no longer be required in the future see https://github.com/neos/neos-development-collection/pull/4988 * - * @deprecated this b/c layer will be removed with the next beta or before Neos 9 final release - * @api + * TODO decide whether it might be useful to have some return type that tells something about the published events + * (e.g. last sequence number) and maybe even about the updated/skipped projections + * see discussion: https://github.com/neos/neos-development-collection/pull/5061#issuecomment-2117643465 + * + * @internal this object will either be transformed into something useful and made API or deleted. */ final readonly class CommandResult { - /** - * We block by default thus you must not call this method or use this legacy stub - * @deprecated this b/c layer will be removed with the next beta or before Neos 9 final release - */ - public function block(): void - { - } } diff --git a/Neos.ContentRepository.Core/Classes/ContentRepository.php b/Neos.ContentRepository.Core/Classes/ContentRepository.php index f6fc32cbc0e..fdb6d520c8f 100644 --- a/Neos.ContentRepository.Core/Classes/ContentRepository.php +++ b/Neos.ContentRepository.Core/Classes/ContentRepository.php @@ -90,10 +90,6 @@ public function __construct( /** * The only API to send commands (mutation intentions) to the system. * - * The system is ASYNCHRONOUS by default, so that means the projection is not directly up to date. If you - * need to be synchronous, call {@see CommandResult::block()} on the returned CommandResult - then the system - * waits until the projections are up to date. - * * @param CommandInterface $command * @return CommandResult */ diff --git a/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/ContentSubgraphIdentity.php b/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/ContentSubgraphIdentity.php deleted file mode 100644 index 086d508b32d..00000000000 --- a/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/ContentSubgraphIdentity.php +++ /dev/null @@ -1,105 +0,0 @@ -contentRepositoryId->equals($other->contentRepositoryId) - && $this->contentStreamId->equals($other->contentStreamId) - && $this->dimensionSpacePoint->equals($other->dimensionSpacePoint) - && $this->visibilityConstraints->getHash() === $other->visibilityConstraints->getHash(); - } - - public function withContentStreamId(ContentStreamId $contentStreamId): self - { - return new self( - $this->contentRepositoryId, - $contentStreamId, - $this->dimensionSpacePoint, - $this->visibilityConstraints - ); - } - - public function withVisibilityConstraints(VisibilityConstraints $visibilityConstraints): self - { - return new self( - $this->contentRepositoryId, - $this->contentStreamId, - $this->dimensionSpacePoint, - $visibilityConstraints - ); - } - - /** - * @return array - */ - public function jsonSerialize(): array - { - return [ - 'contentRepositoryId' => $this->contentRepositoryId, - 'contentStreamId' => $this->contentStreamId, - 'dimensionSpacePoint' => $this->dimensionSpacePoint, - 'visibilityConstraints' => $this->visibilityConstraints - ]; - } -} diff --git a/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/Node.php b/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/Node.php index 6e685d56e5c..e22058fda92 100644 --- a/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/Node.php +++ b/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/Node.php @@ -16,7 +16,6 @@ use Neos\ContentRepository\Core\DimensionSpace\DimensionSpacePoint; use Neos\ContentRepository\Core\DimensionSpace\OriginDimensionSpacePoint; -use Neos\ContentRepository\Core\NodeType\NodeType; use Neos\ContentRepository\Core\NodeType\NodeTypeName; use Neos\ContentRepository\Core\SharedModel\ContentRepository\ContentRepositoryId; use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress; @@ -24,7 +23,6 @@ use Neos\ContentRepository\Core\SharedModel\Node\NodeAggregateId; use Neos\ContentRepository\Core\SharedModel\Node\NodeName; use Neos\ContentRepository\Core\SharedModel\Node\PropertyName; -use Neos\ContentRepository\Core\SharedModel\Workspace\ContentStreamId; use Neos\ContentRepository\Core\SharedModel\Workspace\WorkspaceName; /** @@ -69,38 +67,6 @@ */ final readonly class Node { - /** - * This was intermediate part of the node's "Read Model" identity. - * Please use {@see $contentRepositoryId} {@see $workspaceName} {@see $dimensionSpacePoint} and {@see $aggregateId} instead, - * or see {@see NodeAddress::fromNode()} for passing the identity around. - * The visibility-constraints now reside in {@see $visibilityConstraints}. - * There is no replacement for the previously attached content-stream-id. Please refactor the code to use the newly available workspace-name. - * @deprecated will be removed before the final 9.0 release - */ - public ContentSubgraphIdentity $subgraphIdentity; - - /** - * In PHP please use {@see $aggregateId} instead. - * - * For Fusion please use the upcoming FlowQuery operation: - * ``` - * ${q(node).id()} - * ``` - * @deprecated will be removed before the final 9.0 release - */ - public NodeAggregateId $nodeAggregateId; - - /** - * In PHP please use {@see $name} instead. - * - * For Fusion use: - * ``` - * ${node.name.value} - * ``` - * @deprecated will be removed before the final 9.0 release - */ - public ?NodeName $nodeName; - /** * @param ContentRepositoryId $contentRepositoryId The content-repository this Node belongs to * @param WorkspaceName $workspaceName The workspace of this Node @@ -127,29 +93,19 @@ private function __construct( public ?NodeName $name, public NodeTags $tags, public Timestamps $timestamps, - public VisibilityConstraints $visibilityConstraints, - ContentStreamId $contentStreamId + public VisibilityConstraints $visibilityConstraints ) { if ($this->classification->isTethered() && $this->name === null) { throw new \InvalidArgumentException('The NodeName must be set if the Node is tethered.', 1695118377); } - // legacy to be removed before Neos9 - $this->nodeAggregateId = $this->aggregateId; - $this->nodeName = $this->name; - $this->subgraphIdentity = ContentSubgraphIdentity::create( - $contentRepositoryId, - $contentStreamId, - $dimensionSpacePoint, - $visibilityConstraints - ); } /** * @internal The signature of this method can change in the future! */ - public static function create(ContentRepositoryId $contentRepositoryId, WorkspaceName $workspaceName, DimensionSpacePoint $dimensionSpacePoint, NodeAggregateId $aggregateId, OriginDimensionSpacePoint $originDimensionSpacePoint, NodeAggregateClassification $classification, NodeTypeName $nodeTypeName, PropertyCollection $properties, ?NodeName $nodeName, NodeTags $tags, Timestamps $timestamps, VisibilityConstraints $visibilityConstraints, ContentStreamId $contentStreamId): self + public static function create(ContentRepositoryId $contentRepositoryId, WorkspaceName $workspaceName, DimensionSpacePoint $dimensionSpacePoint, NodeAggregateId $aggregateId, OriginDimensionSpacePoint $originDimensionSpacePoint, NodeAggregateClassification $classification, NodeTypeName $nodeTypeName, PropertyCollection $properties, ?NodeName $name, NodeTags $tags, Timestamps $timestamps, VisibilityConstraints $visibilityConstraints): self { - return new self($contentRepositoryId, $workspaceName, $dimensionSpacePoint, $aggregateId, $originDimensionSpacePoint, $classification, $nodeTypeName, $properties, $nodeName, $tags, $timestamps, $visibilityConstraints, $contentStreamId); + return new self($contentRepositoryId, $workspaceName, $dimensionSpacePoint, $aggregateId, $originDimensionSpacePoint, $classification, $nodeTypeName, $properties, $name, $tags, $timestamps, $visibilityConstraints); } /** @@ -178,28 +134,6 @@ public function hasProperty(PropertyName|string $propertyName): bool return $this->properties->offsetExists($propertyName instanceof PropertyName ? $propertyName->value : $propertyName); } - /** - * Returned the node label as generated by the configured node label generator. - * - * In PHP please use Neos' {@see NodeLabelGeneratorInterface} instead. - * - * For Fusion please use the FlowQuery operation: - * ``` - * ${q(node).label()} - * ``` - * - * @deprecated will be removed before the final 9.0 release - */ - public function getLabel(): string - { - if (!class_exists(\Neos\Neos\Domain\NodeLabel\DelegatingNodeLabelRenderer::class)) { - throw new \BadMethodCallException('node labels are removed from standalone cr.'); - } - // highly illegal - /** @phpstan-ignore-next-line */ - return (new \Neos\Neos\Domain\NodeLabel\DelegatingNodeLabelRenderer())->getLabel($this); - } - /** * Checks if the node's "Read Model" identity equals with the given one */ diff --git a/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/NodeAggregate.php b/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/NodeAggregate.php index 73f078fac2c..c949bac0f57 100644 --- a/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/NodeAggregate.php +++ b/Neos.ContentRepository.Core/Classes/Projection/ContentGraph/NodeAggregate.php @@ -53,12 +53,6 @@ */ final readonly class NodeAggregate { - /** - * This was intermediate part of the node aggregate. Please use {@see $workspaceName} instead. - * @deprecated will be removed before the final 9.0 release - */ - public ContentStreamId $contentStreamId; - /** * @param ContentRepositoryId $contentRepositoryId The content-repository this node aggregate belongs to * @param WorkspaceName $workspaceName The workspace of this node aggregate @@ -88,9 +82,7 @@ private function __construct( private array $nodesByCoveredDimensionSpacePoint, private OriginByCoverage $occupationByCovered, private DimensionSpacePointsBySubtreeTags $dimensionSpacePointsBySubtreeTags, - ContentStreamId $contentStreamId, ) { - $this->contentStreamId = $contentStreamId; } /** @@ -112,7 +104,6 @@ public static function create( array $nodesByCoveredDimensionSpacePoint, OriginByCoverage $occupationByCovered, DimensionSpacePointsBySubtreeTags $dimensionSpacePointsBySubtreeTags, - ContentStreamId $contentStreamId, ): self { return new self( $contentRepositoryId, @@ -128,7 +119,6 @@ public static function create( $nodesByCoveredDimensionSpacePoint, $occupationByCovered, $dimensionSpacePointsBySubtreeTags, - $contentStreamId, ); } diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ClosestOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ClosestOperation.php index 782249ae878..7643e637141 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ClosestOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ClosestOperation.php @@ -64,6 +64,7 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) } $output = []; + /** @var Node $contextNode */ foreach ($flowQuery->getContext() as $contextNode) { $contextNodeQuery = new FlowQuery([$contextNode]); $contextNodeQuery->pushOperation('first', []); diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextAllOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextAllOperation.php index 89bc14f75f9..72554d68337 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextAllOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextAllOperation.php @@ -68,9 +68,10 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) $output = []; $outputNodePaths = []; foreach ($flowQuery->getContext() as $contextNode) { + /** @var Node $contextNode */ $nextNodes = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findSucceedingSiblingNodes( - $contextNode->nodeAggregateId, + $contextNode->aggregateId, FindSucceedingSiblingNodesFilter::create() ); foreach ($nextNodes as $nextNode) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextOperation.php index 9903cb806cb..e3db9f03141 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextOperation.php @@ -69,9 +69,10 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) $output = []; $outputNodePaths = []; foreach ($flowQuery->getContext() as $contextNode) { + /** @var Node $contextNode */ $nextNode = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findSucceedingSiblingNodes( - $contextNode->nodeAggregateId, + $contextNode->aggregateId, FindSucceedingSiblingNodesFilter::create() )->first(); if ($nextNode !== null && !isset($outputNodePaths[$nextNode->aggregateId->value])) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextUntilOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextUntilOperation.php index e79d0fe7dc2..9ca1494045a 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextUntilOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/NextUntilOperation.php @@ -72,9 +72,10 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) $outputNodeIdentifiers = []; foreach ($flowQuery->getContext() as $contextNode) { + /** @var Node $contextNode */ $nextNodes = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findSucceedingSiblingNodes( - $contextNode->nodeAggregateId, + $contextNode->aggregateId, FindSucceedingSiblingNodesFilter::create() ); if (isset($arguments[0]) && !empty($arguments[0])) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentOperation.php index fb3f84f41d3..07790c7c64d 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentOperation.php @@ -66,8 +66,8 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) { $output = []; $outputNodeAggregateIds = []; + /** @var Node $contextNode */ foreach ($flowQuery->getContext() as $contextNode) { - /* @var $contextNode Node */ $parentNode = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findParentNode($contextNode->aggregateId); if ($parentNode === null) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentsUntilOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentsUntilOperation.php index 864aa5276c4..76beab42acf 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentsUntilOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/ParentsUntilOperation.php @@ -78,9 +78,10 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) NodeTypeNames::with(NodeTypeNameFactory::forRoot()) ) ); + /** @var Node $contextNode */ foreach ($flowQuery->getContext() as $contextNode) { $parentNodes = $this->contentRepositoryRegistry->subgraphForNode($contextNode) - ->findAncestorNodes($contextNode->nodeAggregateId, $findAncestorNodesFilter); + ->findAncestorNodes($contextNode->aggregateId, $findAncestorNodesFilter); if (isset($arguments[0]) && !empty($arguments[0] && !$parentNodes->isEmpty())) { $filterQuery = new FlowQuery(iterator_to_array($parentNodes)); $filterQuery->pushOperation('filter', [$arguments[0]]); diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevAllOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevAllOperation.php index f646c63c5cf..cf4599636d4 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevAllOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevAllOperation.php @@ -67,10 +67,11 @@ public function evaluate(FlowQuery $flowQuery, array $arguments) { $output = []; $outputNodeAggregateIds = []; + /** @var Node $contextNode */ foreach ($flowQuery->getContext() as $contextNode) { $prevNodes = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findPrecedingSiblingNodes( - $contextNode->nodeAggregateId, + $contextNode->aggregateId, FindPrecedingSiblingNodesFilter::create() )->reverse(); foreach ($prevNodes as $prevNode) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevOperation.php index a50f0eacd47..167fff1a12e 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevOperation.php @@ -67,10 +67,11 @@ public function evaluate(FlowQuery $flowQuery, array $arguments): void { $output = []; $outputNodePaths = []; + /** @var Node $contextNode */ foreach ($flowQuery->getContext() as $contextNode) { $previousNode = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findPrecedingSiblingNodes( - $contextNode->nodeAggregateId, + $contextNode->aggregateId, FindPrecedingSiblingNodesFilter::create() )->first(); if ($previousNode !== null && !isset($outputNodePaths[$previousNode->aggregateId->value])) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevUntilOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevUntilOperation.php index 62faaf35669..bd7b854cfcd 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevUntilOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/PrevUntilOperation.php @@ -71,10 +71,11 @@ public function evaluate(FlowQuery $flowQuery, array $arguments): void $output = []; $outputNodeIdentifiers = []; + /** @var Node $contextNode */ foreach ($flowQuery->getContext() as $contextNode) { $prevNodes = $this->contentRepositoryRegistry->subgraphForNode($contextNode) ->findPrecedingSiblingNodes( - $contextNode->nodeAggregateId, + $contextNode->aggregateId, FindPrecedingSiblingNodesFilter::create() ); if (isset($arguments[0]) && !empty($arguments[0])) { diff --git a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/SiblingsOperation.php b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/SiblingsOperation.php index 13f76207072..8282af2b9f8 100644 --- a/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/SiblingsOperation.php +++ b/Neos.ContentRepository.NodeAccess/Classes/FlowQueryOperations/SiblingsOperation.php @@ -72,6 +72,7 @@ public function evaluate(FlowQuery $flowQuery, array $arguments): void } foreach ($flowQuery->getContext() as $contextNode) { + /** @var Node $contextNode */ $subgraph = $this->contentRepositoryRegistry->subgraphForNode($contextNode); $parentNode = $subgraph->findParentNode($contextNode->aggregateId); diff --git a/Neos.ContentRepository.TestSuite/Classes/Unit/NodeSubjectProvider.php b/Neos.ContentRepository.TestSuite/Classes/Unit/NodeSubjectProvider.php index 7a06c14757a..c0dbeee5028 100644 --- a/Neos.ContentRepository.TestSuite/Classes/Unit/NodeSubjectProvider.php +++ b/Neos.ContentRepository.TestSuite/Classes/Unit/NodeSubjectProvider.php @@ -27,20 +27,16 @@ use Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectIntDenormalizer; use Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectStringDenormalizer; use Neos\ContentRepository\Core\Infrastructure\Property\PropertyConverter; -use Neos\ContentRepository\Core\NodeType\NodeType; use Neos\ContentRepository\Core\NodeType\NodeTypeName; -use Neos\ContentRepository\Core\Projection\ContentGraph\ContentSubgraphIdentity; use Neos\ContentRepository\Core\Projection\ContentGraph\Node; use Neos\ContentRepository\Core\Projection\ContentGraph\NodeTags; use Neos\ContentRepository\Core\Projection\ContentGraph\PropertyCollection; use Neos\ContentRepository\Core\Projection\ContentGraph\Timestamps; use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints; use Neos\ContentRepository\Core\SharedModel\ContentRepository\ContentRepositoryId; -use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress; use Neos\ContentRepository\Core\SharedModel\Node\NodeAggregateClassification; use Neos\ContentRepository\Core\SharedModel\Node\NodeAggregateId; use Neos\ContentRepository\Core\SharedModel\Node\NodeName; -use Neos\ContentRepository\Core\SharedModel\Workspace\ContentStreamId; use Neos\ContentRepository\Core\SharedModel\Workspace\WorkspaceName; use Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer; use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; @@ -109,7 +105,6 @@ public function createMinimalNodeOfType( new \DateTimeImmutable() ), VisibilityConstraints::withoutRestrictions(), - ContentStreamId::fromString('cs-id'), ); } } diff --git a/Neos.Neos/Classes/Domain/Repository/SiteRepository.php b/Neos.Neos/Classes/Domain/Repository/SiteRepository.php index a70dc5074e4..6146a3acfa2 100644 --- a/Neos.Neos/Classes/Domain/Repository/SiteRepository.php +++ b/Neos.Neos/Classes/Domain/Repository/SiteRepository.php @@ -110,7 +110,7 @@ public function findOneByNodeName(string|SiteNodeName $nodeName): ?Site * To find the correct site node by its descended child node leverage `findClosestNode`: * ```php * $siteNode = $subgraph->findClosestNode( - * $node->nodeAggregateId, + * $node->aggregateId, * FindClosestNodeFilter::create(nodeTypes: NodeTypeNameFactory::NAME_SITE) * ); * ``` diff --git a/Neos.Neos/Classes/Service/ImageVariantGarbageCollector.php b/Neos.Neos/Classes/Service/ImageVariantGarbageCollector.php index 0f4e21b4838..e7b54a1cab1 100644 --- a/Neos.Neos/Classes/Service/ImageVariantGarbageCollector.php +++ b/Neos.Neos/Classes/Service/ImageVariantGarbageCollector.php @@ -50,6 +50,7 @@ class ImageVariantGarbageCollector * * Note: This method it triggered by the "nodePropertyChanged" signal, * @see \Neos\ContentRepository\Domain\Model\Node::emitNodePropertyChanged() + * TODO Fix with Neos9 !!! See https://github.com/neos/neos-development-collection/issues/5145 * * @param Node $node the affected node * @param string $propertyName name of the property that has been changed/added @@ -77,6 +78,7 @@ public function removeUnusedImageVariant(Node $node, $propertyName, $oldValue, $ // then we are safe to remove the asset here. if ( $usageItem instanceof AssetUsageReference + /** @phpstan-ignore-next-line todo needs repair see https://github.com/neos/neos-development-collection/issues/5145 */ && $usageItem->getContentStreamId()->equals($node->subgraphIdentity->contentStreamId) && $usageItem->getOriginDimensionSpacePoint()->equals($node->originDimensionSpacePoint) && $usageItem->getNodeAggregateId()->equals($node->aggregateId) diff --git a/Neos.Neos/Resources/Private/Fusion/Backend/Views/Login.fusion b/Neos.Neos/Resources/Private/Fusion/Backend/Views/Login.fusion index eee0c1623e7..0611dfdbe24 100644 --- a/Neos.Neos/Resources/Private/Fusion/Backend/Views/Login.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Backend/Views/Login.fusion @@ -26,7 +26,7 @@ prototype(Neos.Neos:View.Login) < prototype(Neos.Fusion:Component) { } renderer = afx` - +