@@ -79,9 +79,16 @@ private function enumerateAll(?Site $site, ContentReleaseLogger $contentReleaseL
79
79
{
80
80
$ combinator = new NodeContextCombinator ();
81
81
82
- $ nodeTypeWhitelist = $ this ->nodeTypeConstraintFactory ->parseFilterString ($ this ->nodeTypeWhitelist );
82
+ // Build filter from white listed nodetypes
83
+ $ nodeTypeWhitelist = explode (', ' , $ this ->nodeTypeWhitelist ?: 'Neos.Neos:Document ' );
84
+ $ nodeTypeFilter = implode (', ' , array_map (static function ($ nodeType ) {
85
+ if ($ nodeType [0 ] === '! ' ) {
86
+ return '[!instanceof ' . substr ($ nodeType , 1 ) . '] ' ;
87
+ }
88
+ return '[instanceof ' . $ nodeType . '] ' ;
89
+ }, $ nodeTypeWhitelist ));
83
90
84
- $ queueSite = function (Site $ site ) use ($ combinator , $ nodeTypeWhitelist , $ contentReleaseLogger , $ workspaceName ) {
91
+ $ queueSite = static function (Site $ site ) use ($ combinator , $ nodeTypeFilter , $ contentReleaseLogger , $ workspaceName ) {
85
92
$ contentReleaseLogger ->debug ('Publishing site ' , [
86
93
'name ' => $ site ->getName (),
87
94
'domain ' => $ site ->getFirstActiveDomain ()
@@ -94,24 +101,15 @@ private function enumerateAll(?Site $site, ContentReleaseLogger $contentReleaseL
94
101
'dimensionValues ' => $ dimensionValues
95
102
]);
96
103
97
- // Build filter from white listed nodetypes
98
- $ nodeTypeWhitelist = explode (', ' , $ this ->nodeTypeWhitelist ?: 'Neos.Neos:Document ' );
99
- $ nodeTypeFilter = implode (', ' , array_map (static function ($ nodeType ) {
100
- if ($ nodeType [0 ] === '! ' ) {
101
- return '[!instanceof ' . substr ($ nodeType , 1 ) . '] ' ;
102
- }
103
- return '[instanceof ' . $ nodeType . '] ' ;
104
- }, $ nodeTypeWhitelist ));
105
-
106
- $ documentQuery = new FlowQuery ([$ siteNode ]);
107
- /** @var NodeInterface[] $documents */
108
- $ documents = $ documentQuery ->find ($ nodeTypeFilter )->add ($ siteNode )->get ();
104
+ $ nodeQuery = new FlowQuery ([$ siteNode ]);
105
+ /** @var NodeInterface[] $matchingNodes */
106
+ $ matchingNodes = $ nodeQuery ->find ($ nodeTypeFilter )->add ($ siteNode )->get ();
109
107
110
- foreach ($ documents as $ documentNode ) {
111
- $ contextPath = $ documentNode ->getContextPath ();
108
+ foreach ($ matchingNodes as $ nodeToEnumerate ) {
109
+ $ contextPath = $ nodeToEnumerate ->getContextPath ();
112
110
113
111
// Verify that the node is not orphaned
114
- $ parentNode = $ documentNode ->getParent ();
112
+ $ parentNode = $ nodeToEnumerate ->getParent ();
115
113
while ($ parentNode !== $ siteNode ) {
116
114
if ($ parentNode === null ) {
117
115
$ contentReleaseLogger ->debug ('Skipping node from publishing, because it is orphaned ' , [
@@ -123,28 +121,24 @@ private function enumerateAll(?Site $site, ContentReleaseLogger $contentReleaseL
123
121
$ parentNode = $ parentNode ->getParent ();
124
122
}
125
123
126
- if (!$ documentNode ->getParent ()) {
127
- $ contentReleaseLogger ->debug ('Skipping node from publishing, because it is orphaned ' , [
128
- 'node ' => $ contextPath ,
129
- ]);
130
- } else if ($ documentNode ->isHidden ()) {
124
+ if ($ nodeToEnumerate ->isHidden ()) {
131
125
$ contentReleaseLogger ->debug ('Skipping node from publishing, because it is hidden ' , [
132
126
'node ' => $ contextPath ,
133
127
]);
134
128
} else {
135
129
$ contentReleaseLogger ->debug ('Registering node for publishing ' , [
136
130
'node ' => $ contextPath
137
131
]);
138
- yield EnumeratedNode::fromNode ($ documentNode );
132
+ yield EnumeratedNode::fromNode ($ nodeToEnumerate );
139
133
}
140
134
}
141
135
}
142
136
$ contentReleaseLogger ->debug (sprintf ('Finished enumerating site %s in %dms ' , $ site ->getName (), (microtime (true ) - $ startTime ) * 1000 ));
143
137
};
144
138
145
139
if ($ site === null ) {
146
- foreach ($ combinator ->sites () as $ site ) {
147
- yield from $ queueSite ($ site );
140
+ foreach ($ combinator ->sites () as $ siteInList ) {
141
+ yield from $ queueSite ($ siteInList );
148
142
}
149
143
} else {
150
144
yield from $ queueSite ($ site );
0 commit comments