diff --git a/src/Core/Upgrade/UpgradeApiResourceVisitor.php b/src/Core/Upgrade/UpgradeApiResourceVisitor.php index ead9a207f01..df48a3dee7b 100644 --- a/src/Core/Upgrade/UpgradeApiResourceVisitor.php +++ b/src/Core/Upgrade/UpgradeApiResourceVisitor.php @@ -359,8 +359,8 @@ private function removeAttribute(Node\Stmt\Class_|Node\Stmt\Interface_ $node) } } foreach ($node->stmts as $k => $stmts) { - foreach ($stmts->attrGroups as $i => $attrGroups) { - foreach ($attrGroups->attrs as $j => $attrs) { + foreach ($stmts->attrGroups ?? [] as $i => $attrGroups) { + foreach ($attrGroups->attrs ?? [] as $j => $attrs) { if (str_ends_with(implode('\\', $attrs->name->parts), 'ApiSubresource')) { unset($node->stmts[$k]->attrGroups[$i]); break; @@ -443,6 +443,9 @@ private function legacyOperationsToOperations($legacyOperations, bool $isCollect $method = $operation['method'] ?? strtoupper($operationName); unset($operation['method']); + if (!isset($operation['path']) && !\in_array($operationName, ['get', 'post', 'put', 'patch', 'delete'], true)) { + $operation['name'] = $operationName; + } $operations[] = $this->createOperation($this->getOperationNamespace($method, $isCollection), $operation); }