diff --git a/src/DocumentTransformers/AddDocumentTags.php b/src/DocumentTransformers/AddDocumentTags.php index fd307110d..986feadee 100644 --- a/src/DocumentTransformers/AddDocumentTags.php +++ b/src/DocumentTransformers/AddDocumentTags.php @@ -52,14 +52,6 @@ private function makeTagsFromGroupAttributes(Collection $groupsAttributes) return $acc; }, collect()); - return $tags - ->sort(function (Tag $a, Tag $b) { - $weightA = $a->getAttribute('weight') ?? PHP_INT_MAX; - $weightB = $b->getAttribute('weight') ?? PHP_INT_MAX; - - return ($weightA <=> $weightB) ?: strcasecmp($a->name, $b->name); - }) - ->values() - ->all(); + return $tags->sortBy(fn (Tag $t) => $t->getAttribute('weight', INF))->values()->all(); } } diff --git a/src/Generator.php b/src/Generator.php index bf3e6790c..c8393d664 100644 --- a/src/Generator.php +++ b/src/Generator.php @@ -136,10 +136,10 @@ private function createOperationsSorter(): array $defaultSortValue = fn (Operation $o) => $o->tags[0] ?? null; return [ - fn (Operation $a, Operation $b) => $a->getAttribute('groupWeight', PHP_INT_MAX) <=> $b->getAttribute('groupWeight', PHP_INT_MAX), - fn (Operation $a, Operation $b) => $a->getAttribute('weight', PHP_INT_MAX) <=> $b->getAttribute('weight', PHP_INT_MAX), // @todo manual endpoint sorting + fn (Operation $a, Operation $b) => $a->getAttribute('groupWeight', INF) <=> $b->getAttribute('groupWeight', INF), + fn (Operation $a, Operation $b) => $a->getAttribute('weight', INF) <=> $b->getAttribute('weight', INF), // @todo manual endpoint sorting fn (Operation $a, Operation $b) => $defaultSortValue($a) <=> $defaultSortValue($b), - fn (Operation $a, Operation $b) => $a->getAttribute('index', PHP_INT_MAX) <=> $b->getAttribute('index', PHP_INT_MAX), + fn (Operation $a, Operation $b) => $a->getAttribute('index', INF) <=> $b->getAttribute('index', INF), ]; }