Skip to content

Commit dd7366f

Browse files
committed
Code: apply phpstan
1 parent 246d131 commit dd7366f

11 files changed

Lines changed: 107 additions & 104 deletions

File tree

phpstan.neon

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
includes:
2-
- vendor/contributte/phpstan/phpstan.neon
2+
#- vendor/contributte/phpstan/phpstan.neon
3+
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
4+
- vendor/phpstan/phpstan-nette/extension.neon
5+
- vendor/phpstan/phpstan-nette/rules.neon
6+
#- vendor/phpstan/phpstan-strict-rules/rules.neon
37

48
parameters:
5-
level: 9
9+
level: 8
610
phpVersion: 80100
711

812
scanDirectories:
@@ -16,3 +20,72 @@ parameters:
1620
- .docs
1721

1822
ignoreErrors:
23+
-
24+
message: """
25+
#^Call to deprecated method getName\\(\\) of class Contributte\\\\Imagist\\\\Bridge\\\\Doctrine\\\\ImageType\\:
26+
this method will be removed in Doctrine DBAL 4\\.0,
27+
use \\{@see TypeRegistry\\:\\:lookupName\\(\\)\\} instead\\.$#
28+
"""
29+
count: 2
30+
path: src/Bridge/Doctrine/ImageType.php
31+
32+
-
33+
message: "#^Class Contributte\\\\Imagist\\\\Bridge\\\\Nette\\\\DI\\\\GumletImageStorageExtension extends @final class Contributte\\\\Imagist\\\\Bridge\\\\Nette\\\\DI\\\\GumletImagistExtension\\.$#"
34+
count: 1
35+
path: src/Bridge/Nette/DI/GumletImageStorageExtension.php
36+
37+
-
38+
message: "#^Class Contributte\\\\Imagist\\\\Bridge\\\\Nette\\\\DI\\\\ImageStorageConfigFiltersExtension extends @final class Contributte\\\\Imagist\\\\Bridge\\\\Nette\\\\DI\\\\ImagistNeonFiltersExtension\\.$#"
39+
count: 1
40+
path: src/Bridge/Nette/DI/ImageStorageConfigFiltersExtension.php
41+
42+
-
43+
message: "#^Class Contributte\\\\Imagist\\\\Bridge\\\\Nette\\\\DI\\\\ImageStorageExtension extends @final class Contributte\\\\Imagist\\\\Bridge\\\\Nette\\\\DI\\\\ImagistExtension\\.$#"
44+
count: 1
45+
path: src/Bridge/Nette/DI/ImageStorageExtension.php
46+
47+
-
48+
message: "#^Method Contributte\\\\Imagist\\\\Bridge\\\\Symfony\\\\Serializer\\\\ImagistNormalizer\\:\\:normalize\\(\\) return type has no value type specified in iterable type array\\.$#"
49+
count: 1
50+
path: src/Bridge/Symfony/Serializer/ImagistNormalizer.php
51+
52+
-
53+
message: "#^Method Contributte\\\\Imagist\\\\Bridge\\\\Symfony\\\\Serializer\\\\ImagistNormalizer\\:\\:normalize\\(\\) return type with generic class ArrayObject does not specify its types\\: TKey, TValue$#"
54+
count: 1
55+
path: src/Bridge/Symfony/Serializer/ImagistNormalizer.php
56+
57+
-
58+
message: "#^Method Contributte\\\\Imagist\\\\Bridge\\\\Symfony\\\\Serializer\\\\ImagistNormalizer\\:\\:normalize\\(\\) should return array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null but returns Contributte\\\\Imagist\\\\Entity\\\\PersistentImageInterface\\.$#"
59+
count: 1
60+
path: src/Bridge/Symfony/Serializer/ImagistNormalizer.php
61+
62+
-
63+
message: "#^Method Contributte\\\\Imagist\\\\Bridge\\\\Symfony\\\\Serializer\\\\ImagistNormalizer\\:\\:supportsNormalization\\(\\) has parameter \\$context with no value type specified in iterable type array\\.$#"
64+
count: 1
65+
path: src/Bridge/Symfony/Serializer/ImagistNormalizer.php
66+
67+
-
68+
message: "#^PHPDoc tag @return with type mixed is not subtype of native type array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null\\.$#"
69+
count: 1
70+
path: src/Bridge/Symfony/Serializer/ImagistNormalizer.php
71+
72+
-
73+
message: "#^Method Contributte\\\\Imagist\\\\Entity\\\\PromisedImage\\:\\:getOriginal\\(\\) should return Contributte\\\\Imagist\\\\Entity\\\\PromisedImage but returns Contributte\\\\Imagist\\\\Entity\\\\PersistentImageInterface\\.$#"
74+
count: 1
75+
path: src/Entity/PromisedImage.php
76+
77+
-
78+
message: "#^Method Contributte\\\\Imagist\\\\Entity\\\\PromisedImage\\:\\:withFilter\\(\\) should return Contributte\\\\Imagist\\\\Entity\\\\PromisedImage but returns Contributte\\\\Imagist\\\\Entity\\\\PersistentImageInterface\\.$#"
79+
count: 1
80+
path: src/Entity/PromisedImage.php
81+
82+
-
83+
message: "#^Method Contributte\\\\Imagist\\\\Entity\\\\PromisedImage\\:\\:withName\\(\\) should return Contributte\\\\Imagist\\\\Entity\\\\PromisedImage but returns Contributte\\\\Imagist\\\\Entity\\\\PersistentImageInterface\\.$#"
84+
count: 1
85+
path: src/Entity/PromisedImage.php
86+
87+
-
88+
message: "#^Method Contributte\\\\Imagist\\\\Entity\\\\PromisedImage\\:\\:withScope\\(\\) should return Contributte\\\\Imagist\\\\Entity\\\\PromisedImage but returns Contributte\\\\Imagist\\\\Entity\\\\PersistentImageInterface\\.$#"
89+
count: 1
90+
path: src/Entity/PromisedImage.php
91+

src/Bridge/Nette/DI/ImagistExtension.php

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
use Contributte\Imagist\Bridge\Imagine\ImagineResourceFactory;
1010
use Contributte\Imagist\Bridge\Nette\Filter\NetteOperationProcessor;
1111
use Contributte\Imagist\Bridge\Nette\Filter\NetteResourceFactory;
12+
use Contributte\Imagist\Bridge\Nette\Latte\Extension\ImagistExtension as ImagistExtensionLatte;
1213
use Contributte\Imagist\Bridge\Nette\Latte\LatteImageProvider;
1314
use Contributte\Imagist\Bridge\Nette\LinkGenerator;
14-
use Contributte\Imagist\Bridge\Nette\Macro\ImageMacro;
1515
use Contributte\Imagist\Bridge\Nette\Tracy\ImageBarPanel;
1616
use Contributte\Imagist\Bridge\Nette\Tracy\ImagistBlueScreen;
1717
use Contributte\Imagist\Database\DatabaseConverter;
@@ -56,7 +56,6 @@
5656
use Doctrine\Common\Annotations\Reader;
5757
use Doctrine\DBAL\Connection;
5858
use Doctrine\ORM\EntityManagerInterface;
59-
use Latte\Engine;
6059
use Nette\Bridges\ApplicationLatte\LatteFactory;
6160
use Nette\DI\CompilerExtension;
6261
use Nette\DI\ContainerBuilder;
@@ -75,7 +74,9 @@
7574
/**
7675
* @final
7776
*/
78-
/*final*/ class ImagistExtension extends CompilerExtension
77+
/*final*/
78+
79+
class ImagistExtension extends CompilerExtension
7980
{
8081

8182
/** @var callable[] */
@@ -341,36 +342,6 @@ private function loadDoctrine(ContainerBuilder $builder): void
341342
}
342343

343344
private function loadLatte(ContainerBuilder $builder): void
344-
{
345-
if (version_compare(Engine::VERSION, '3', '<')) { // @phpstan-ignore-line
346-
$this->loadLatte2($builder);
347-
} else {
348-
$this->loadLatte3($builder);
349-
}
350-
}
351-
352-
private function loadLatte2(ContainerBuilder $builder): void
353-
{
354-
$serviceName = $builder->getByType(LatteFactory::class);
355-
if (!$serviceName) {
356-
return;
357-
}
358-
359-
$builder->addDefinition($this->prefix('latte.provider'))
360-
->setFactory(LatteImageProvider::class);
361-
362-
$factory = $builder->getDefinition($serviceName);
363-
assert($factory instanceof FactoryDefinition);
364-
365-
$factory->getResultDefinition()
366-
->addSetup('?->onCompile[] = function ($engine) { ?::install($engine->getCompiler()); }', [
367-
'@self',
368-
ImageMacro::class,
369-
])
370-
->addSetup('addProvider', ['images', $this->prefix('@latte.provider')]);
371-
}
372-
373-
private function loadLatte3(ContainerBuilder $builder): void
374345
{
375346
$serviceName = $builder->getByType(LatteFactory::class);
376347
if (!$serviceName) {
@@ -381,7 +352,7 @@ private function loadLatte3(ContainerBuilder $builder): void
381352
->setFactory(LatteImageProvider::class);
382353

383354
$extension = $builder->addDefinition($this->prefix('latte.extension'))
384-
->setFactory(\Contributte\Imagist\Bridge\Nette\Latte\Extension\ImagistExtension::class);
355+
->setFactory(ImagistExtensionLatte::class);
385356

386357
$factory = $builder->getDefinition($serviceName);
387358
assert($factory instanceof FactoryDefinition);

src/Bridge/Nette/Form/ImageUploadControl.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public function setScope(?Scope $scope): static
6868
/**
6969
* @return static
7070
*/
71-
public function setValue(FileUpload|PersistentImageInterface|string|null $value): static
71+
public function setValue(mixed $value): static
7272
{
7373
if ($value === null) {
7474
$this->entity = $this->entity->withValue();
@@ -94,7 +94,6 @@ public function setValue(FileUpload|PersistentImageInterface|string|null $value)
9494
->withDefault(new PersistentImage($value))
9595
->withValue(null);
9696
} else {
97-
// @phpstan-ignore-next-line $value is mixed
9897
$type = is_object($value) ? $value::class : gettype($value);
9998

10099
throw new InvalidArgumentException(

src/Bridge/Nette/Macro/ImageMacro.php

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/Bridge/Symfony/Extension/ImageStorageExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ final class ImageStorageExtension extends Extension
2626
{
2727

2828
/**
29-
* @param string[] $configs
29+
* @param mixed[] $configs
3030
*/
3131
public function load(array $configs, ContainerBuilder $container): void
3232
{

src/Bridge/Symfony/Serializer/ImagistNormalizer.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Contributte\Imagist\Bridge\Symfony\Serializer;
44

5+
use ArrayObject;
56
use Contributte\Imagist\Entity\EmptyImageInterface;
67
use Contributte\Imagist\Entity\PersistentImageInterface;
78
use Contributte\Imagist\Filter\FilterInterface;
@@ -27,9 +28,9 @@ public function __construct(LinkGeneratorInterface $linkGenerator)
2728

2829
/**
2930
* @param mixed[] $context
30-
* @return PersistentImageInterface|array<string|null>|string|null
31+
* @return mixed
3132
*/
32-
public function normalize(mixed $object, ?string $format = null, array $context = []): PersistentImageInterface|array|string|null
33+
public function normalize(mixed $object, ?string $format = null, array $context = []): array|string|int|float|bool|ArrayObject|null
3334
{
3435
assert($object instanceof PersistentImageInterface);
3536

@@ -72,11 +73,22 @@ public function normalize(mixed $object, ?string $format = null, array $context
7273
return $this->linkGenerator->link($object);
7374
}
7475

75-
public function supportsNormalization(mixed $data, ?string $format = null): bool
76+
/**
77+
* {@inheritDoc}
78+
*/
79+
public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool
7680
{
7781
return $data instanceof PersistentImageInterface;
7882
}
7983

84+
/**
85+
* {@inheritDoc}
86+
*/
87+
public function getSupportedTypes(?string $format): array
88+
{
89+
return ['*' => true];
90+
}
91+
8092
/**
8193
* @param array<string, FilterInterface> $filters
8294
* @return array<string|null>

src/Entity/EmptyImage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public function getSuffix(): ?string
3131
/**
3232
* @inheritDoc
3333
*/
34-
public function getOriginal()
34+
public function getOriginal(): static
3535
{
3636
throw new EmptyImageException(sprintf('Cannot call %s on empty image', __METHOD__));
3737
}

src/Entity/PromisedImage.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,28 +66,28 @@ public function hasFilter(): bool
6666
/**
6767
* @inheritDoc
6868
*/
69-
public function withScope(Scope $scope): PersistentImageInterface
69+
public function withScope(Scope $scope): static
7070
{
7171
return $this->getResult()->withScope($scope);
7272
}
7373

7474
/**
7575
* @inheritDoc
7676
*/
77-
public function withName(string $name): PersistentImageInterface
77+
public function withName(string $name): static
7878
{
7979
return $this->getResult()->withName($name);
8080
}
8181

8282
/**
8383
* @inheritDoc
8484
*/
85-
public function withFilter(?FilterInterface $filter): PersistentImageInterface
85+
public function withFilter(?FilterInterface $filter): static
8686
{
8787
return $this->getResult()->withFilter($filter);
8888
}
8989

90-
public function getOriginal(): PersistentImageInterface
90+
public function getOriginal(): static
9191
{
9292
return $this->getResult()->getOriginal();
9393
}
@@ -144,7 +144,7 @@ public function then(callable $callable): void
144144

145145
public function getResult(): PersistentImageInterface
146146
{
147-
if (!$this->result) {
147+
if ($this->result === null) {
148148
throw new PromiseException('Promise is still pending');
149149
}
150150

src/Scope/Scope.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static function fromString(string $scope): static
2727

2828
public function isEmpty(): bool
2929
{
30-
return !$this->scopes;
30+
return $this->scopes === [];
3131
}
3232

3333
public function startsWith(string $scope): bool

src/Storage/ImageStorage.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ public function persist(ImageInterface $image, array $context = []): PersistentI
7070
$result = $this->persister->persist($image, $context);
7171
$persistent = new PersistentImage($result->getId());
7272

73-
if ($clone->getFilter()) {
73+
if ($clone->getFilter() !== null) {
7474
$persistent = $persistent->withFilter($clone->getFilter());
7575
}
7676

7777
$event = new PersistedImageEvent($this, $clone, $persistent);
7878

79-
if ($this->dispatcher) {
79+
if ($this->dispatcher !== null) {
8080
$this->dispatcher->dispatch($event);
8181
}
8282

0 commit comments

Comments
 (0)