neos / neos-development-collection

The unified repository containing the Neos core packages, used for Neos development.
https://www.neos.io/
GNU General Public License v3.0
260 stars 221 forks source link

!!! TASK: Prefer value objects over `array` or `iterable` in ESCR core #5102

Open mhsdesign opened 4 months ago

mhsdesign commented 4 months ago

In the content graph we have some methods returning NodeAggregates and others iterable<NodeAggregate> while it seems like it, the iterable is also not lazy and yielded but fetches all nodes eagerly so there is no performance / memory gain.

2.) NodeAggregate::getNodes might return Nodes instead but its internal and Nodes usually represent a flat list in the same dimension and not a list cross dimensional.

3.) ContentDimensionSourceInterface::getContentDimensionsOrderedByPriority

4.) ContentDimension::getSpecializations and getRootValues

5.) InterDimensionalVariationGrap::getRootGeneralizations and others

6.) NodeType::getProperties and co https://github.com/neos/neos-development-collection/issues/4228

7.) WorkspaceMaintenanceService::rebaseOutdatedWorkspaces returns array<string,Workspace>

8.) Workspace related things https://github.com/neos/neos-development-collection/issues/4683