Skip to content

Commit f177714

Browse files
committed
#4 fix phpstan
1 parent a4956a9 commit f177714

File tree

5 files changed

+22
-9
lines changed

5 files changed

+22
-9
lines changed

src/Documentations/BodyParamDoc.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,22 @@
77
use DenisKorbakov\LaravelDataScribe\Params\BodyParams;
88
use DenisKorbakov\LaravelDataScribe\Transforms\BodyParam\AtrToBodyParamTransform;
99
use Knuckles\Scribe\Tools\DocumentationConfig;
10+
use Spatie\LaravelData\Data;
1011

1112
final readonly class BodyParamDoc implements Doc
1213
{
14+
15+
/**
16+
* @param class-string<Data> $laravelDataClass
17+
* @param array<int, array<string, mixed>> $attributeArguments
18+
*/
1319
public function __construct(
1420
public string $laravelDataClass,
1521
public array $attributeArguments,
1622
public DocumentationConfig $config,
1723
) {}
1824

25+
/** @return ?array<string, array<string, mixed>> */
1926
public function generate(): ?array
2027
{
2128
if (empty($this->laravelDataClass)) {

src/Documentations/Doc.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66

77
interface Doc
88
{
9+
/** @return ?array<string, array<string, mixed>> */
910
public function generate(): ?array;
1011
}

src/Extractors/Attributes/BodyParamAttributeExtract.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@
1010
/** Extracts Body Param attribute from method attributes */
1111
final readonly class BodyParamAttributeExtract implements AttributeExtract
1212
{
13-
/** @param ReflectionAttribute[] $attributes Method to analyze */
13+
/** @param ReflectionAttribute<object>[] $attributes Method to analyze */
1414
public function __construct(
1515
public array $attributes,
1616
) {
1717
}
1818

19-
/** @return array<int, array<string, mixed>> Get array arguments or empty array */
19+
/** @return list<array> Get array arguments or empty array */
2020
public function extract(): array
2121
{
2222
$arguments = [];
2323

2424
foreach ($this->attributes as $attribute) {
25-
if ($attribute instanceof ReflectionAttribute) {
26-
if(is_a($attribute->getName(), BodyParam::class, true)) {
27-
$arguments[] = $attribute->getArguments();
28-
}
25+
if(!is_a($attribute->getName(), BodyParam::class, true)) {
26+
continue;
2927
}
28+
29+
$arguments[] = $attribute->getArguments();
3030
}
3131

3232
return $arguments;

src/LaravelDataBodyParam.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use DenisKorbakov\LaravelDataScribe\Extractors\Attributes\BodyParamAttributeExtract;
99
use DenisKorbakov\LaravelDataScribe\Extractors\Classes\LaravelDataClassExtract;
1010
use Knuckles\Camel\Extraction\ExtractedEndpointData;
11+
use Knuckles\Scribe\Attributes\BodyParam;
1112
use Knuckles\Scribe\Extracting\Strategies\Strategy;
1213
use ReflectionAttribute;
1314
use ReflectionParameter;
@@ -25,12 +26,12 @@ public function __invoke(ExtractedEndpointData $endpointData, array $settings =
2526
{
2627
/** @var ReflectionParameter[] $parameters */
2728
$parameters = $endpointData->method?->getParameters();
28-
/** @var ReflectionAttribute[] $attributes */
29+
/** @var ReflectionAttribute<object>[] $attributes */
2930
$attributes = $endpointData->method?->getAttributes();
3031

3132
/** @var class-string<Data> $laravelDataClass */
3233
$laravelDataClass = (new LaravelDataClassExtract($parameters))->extract();
33-
/** @var array<int, array<string, mixed>> $bodyParamAttribute */
34+
/** @var array<int, array<string, mixed>> $attributeArguments */
3435
$attributeArguments = (new BodyParamAttributeExtract($attributes))->extract();
3536

3637
return (new BodyParamDoc($laravelDataClass, $attributeArguments, $this->config))->generate();

src/Transforms/BodyParam/AtrToBodyParamTransform.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ public function transform(): array
2121

2222
foreach ($this->attributeArguments as $arguments) {
2323
try {
24+
/** @phpstan-ignore-next-line */
2425
$bodyParam = new BodyParam(...$arguments);
2526

26-
$argumentsDoc[$bodyParam->name] = $bodyParam->toArray();
27+
/** @var array<string, mixed> $dataDoc */
28+
$dataDoc = $bodyParam->toArray();
29+
30+
$argumentsDoc[$bodyParam->name] = $dataDoc;
2731
} catch (TypeError) {
2832
continue;
2933
}

0 commit comments

Comments
 (0)