Skip to content

Commit f87d6bf

Browse files
committed
phpstan level 9
opencode (opus 4.5)
1 parent d6a8200 commit f87d6bf

25 files changed

+291
-44
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
"test:infection": "vendor/bin/infection --threads=$(nproc) --min-msi=71 --verbose --coverage=build/phpunit",
9090
"test:integration": "vendor/bin/phpunit --testsuite=Integration --cache-directory=build/phpunit/cache",
9191
"test:lint": "mkdir -p build && find src tests -name '*.php' -print0 | xargs -0 -n1 -P$(nproc) php -l | tee build/phplint.log",
92-
"test:static-analysis": "mkdir -p build && bash -c 'vendor/bin/phpstan analyse src --no-progress --level=7 --error-format=junit | tee build/phpstan.junit.xml; if [ ${PIPESTATUS[0]} -ne \"0\" ]; then exit 1; fi'",
92+
"test:static-analysis": "mkdir -p build && bash -c 'vendor/bin/phpstan analyse src --no-progress --level=9 --error-format=junit | tee build/phpstan.junit.xml; if [ ${PIPESTATUS[0]} -ne \"0\" ]; then exit 1; fi'",
9393
"test:unit": "vendor/bin/phpunit --testsuite=Unit --coverage-text --coverage-clover=build/phpunit/clover.xml --coverage-html=build/phpunit/coverage-html --coverage-xml=build/phpunit/coverage-xml --log-junit=build/phpunit/junit.xml --cache-directory=build/phpunit/cache"
9494
}
9595
}

phpstan.neon

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
11
parameters:
2-
ignoreErrors:
3-
-
4-
message: '#Method Chubbyphp\\Laminas\\Config\\Doctrine\\Persistence\\Mapping\\Driver\\ClassMapMappingInterface\:\:configureMapping\(\) has parameter \$metadata with generic interface Doctrine\\Persistence\\Mapping\\ClassMetadata but does not specify its types\: T#'
5-
path: %currentWorkingDirectory%/src/Persistence/Mapping/Driver/ClassMapMappingInterface.php
6-

src/DBAL/Tools/Console/Command/Database/CreateCommand.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,28 +79,29 @@ private function getConnection(InputInterface $input): Connection
7979
}
8080

8181
/**
82-
* @return array<mixed>
82+
* @return array<string, mixed>
8383
*/
8484
private function getParams(Connection $connection): array
8585
{
8686
$params = $connection->getParams();
8787
if (isset($params['primary'])) {
88+
/** @var array<string, mixed> $params */
8889
$params = $params['primary'];
8990
}
9091

9192
return $params;
9293
}
9394

9495
/**
95-
* @param array<string, string> $params
96+
* @param array<string, mixed> $params
9697
*/
9798
private function getDbName(array $params): string
9899
{
99-
if (isset($params['path'])) {
100+
if (isset($params['path']) && \is_string($params['path'])) {
100101
return $params['path'];
101102
}
102103

103-
if (isset($params['dbname'])) {
104+
if (isset($params['dbname']) && \is_string($params['dbname'])) {
104105
return $params['dbname'];
105106
}
106107

src/DBAL/Tools/Console/Command/Database/DropCommand.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,28 +87,29 @@ private function getConnection(InputInterface $input): Connection
8787
}
8888

8989
/**
90-
* @return array<mixed>
90+
* @return array<string, mixed>
9191
*/
9292
private function getParams(Connection $connection): array
9393
{
9494
$params = $connection->getParams();
9595
if (isset($params['primary'])) {
96+
/** @var array<string, mixed> $params */
9697
$params = $params['primary'];
9798
}
9899

99100
return $params;
100101
}
101102

102103
/**
103-
* @param array<string, string> $params
104+
* @param array<string, mixed> $params
104105
*/
105106
private function getDbName(array $params): string
106107
{
107-
if (isset($params['path'])) {
108+
if (isset($params['path']) && \is_string($params['path'])) {
108109
return $params['path'];
109110
}
110111

111-
if (isset($params['dbname'])) {
112+
if (isset($params['dbname']) && \is_string($params['dbname'])) {
112113
return $params['dbname'];
113114
}
114115

src/DBAL/Tools/Console/ContainerConnectionProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ public function __construct(private readonly ContainerInterface $container) {}
1414

1515
public function getDefaultConnection(): Connection
1616
{
17+
/** @var Connection */
1718
return $this->container->get(Connection::class);
1819
}
1920

2021
public function getConnection(string $name): Connection
2122
{
23+
/** @var Connection */
2224
return $this->container->get(Connection::class.$name);
2325
}
2426
}

src/ODM/MongoDB/Tools/Console/Command/DocumentManagerCommand.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ public function __construct(private readonly Command $command, private readonly
2323

2424
protected function configure(): void
2525
{
26-
$this->setName($this->command->getName());
26+
$commandName = $this->command->getName();
27+
if (null !== $commandName) {
28+
$this->setName($commandName);
29+
}
2730
$this->setAliases($this->command->getAliases());
2831
$this->setDescription($this->command->getDescription());
2932
$this->setHelp($this->command->getHelp());
@@ -43,6 +46,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
4346
$documentManagerName = $input->getOption('dm');
4447

4548
try {
49+
/** @var DocumentManager $documentManager */
4650
$documentManager = $this->container->get(DocumentManager::class.$documentManagerName);
4751
} catch (NotFoundExceptionInterface $serviceNotFoundException) {
4852
throw new \InvalidArgumentException(

src/ORM/Tools/Console/ContainerEntityManagerProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ public function __construct(private readonly ContainerInterface $container) {}
1414

1515
public function getDefaultManager(): EntityManagerInterface
1616
{
17+
/** @var EntityManagerInterface */
1718
return $this->container->get(EntityManagerInterface::class);
1819
}
1920

2021
public function getManager(string $name): EntityManagerInterface
2122
{
23+
/** @var EntityManagerInterface */
2224
return $this->container->get(EntityManagerInterface::class.$name);
2325
}
2426
}

src/Persistence/Mapping/Driver/ClassMapMappingInterface.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@
88

99
interface ClassMapMappingInterface
1010
{
11+
/**
12+
* @param ClassMetadata<object> $metadata
13+
*/
1114
public function configureMapping(ClassMetadata $metadata): void;
1215
}

src/ServiceFactory/Common/Cache/ApcuAdapterFactory.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,27 @@ final class ApcuAdapterFactory extends AbstractFactory
1313
{
1414
public function __invoke(ContainerInterface $container): ApcuAdapter
1515
{
16-
$config = $this->resolveConfig($container->get('config')['doctrine']['cache']['apcu'] ?? []);
16+
/** @var array<string, mixed> $containerConfig */
17+
$containerConfig = $container->get('config');
1718

19+
/** @var array<string, mixed> $doctrine */
20+
$doctrine = $containerConfig['doctrine'] ?? [];
21+
22+
/** @var array<string, mixed> $cache */
23+
$cache = $doctrine['cache'] ?? [];
24+
25+
/** @var array<string, mixed> $apcu */
26+
$apcu = $cache['apcu'] ?? [];
27+
28+
$config = $this->resolveConfig($apcu);
29+
30+
/** @var string $namespace */
1831
$namespace = $config['namespace'] ?? '';
32+
33+
/** @var int $defaultLifetime */
1934
$defaultLifetime = $config['defaultLifetime'] ?? 0;
35+
36+
/** @var null|string $version */
2037
$version = $config['version'] ?? null;
2138

2239
/** @var null|MarshallerInterface $marshaller */

src/ServiceFactory/Common/Cache/ArrayAdapterFactory.php

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,30 @@ final class ArrayAdapterFactory extends AbstractFactory
1212
{
1313
public function __invoke(ContainerInterface $container): ArrayAdapter
1414
{
15-
$config = $this->resolveConfig($container->get('config')['doctrine']['cache']['array'] ?? []);
15+
/** @var array<string, mixed> $containerConfig */
16+
$containerConfig = $container->get('config');
1617

18+
/** @var array<string, mixed> $doctrine */
19+
$doctrine = $containerConfig['doctrine'] ?? [];
20+
21+
/** @var array<string, mixed> $cache */
22+
$cache = $doctrine['cache'] ?? [];
23+
24+
/** @var array<string, mixed> $array */
25+
$array = $cache['array'] ?? [];
26+
27+
$config = $this->resolveConfig($array);
28+
29+
/** @var int $defaultLifetime */
1730
$defaultLifetime = $config['defaultLifetime'] ?? 0;
31+
32+
/** @var bool $storeSerialized */
1833
$storeSerialized = $config['storeSerialized'] ?? true;
34+
35+
/** @var float $maxLifetime */
1936
$maxLifetime = $config['maxLifetime'] ?? 0;
37+
38+
/** @var int $maxItems */
2039
$maxItems = $config['maxItems'] ?? 0;
2140

2241
return new ArrayAdapter($defaultLifetime, $storeSerialized, $maxLifetime, $maxItems);

0 commit comments

Comments
 (0)