Skip to content

Commit 031cd46

Browse files
committed
Merge branch 'phpstan-fix' into 'master'
phpstan fix See merge request head.trackingsoft/micro-kernel!3
2 parents 9143070 + 8688123 commit 031cd46

7 files changed

+28
-37
lines changed

src/Configuration/ApplicationConfigurationInterface.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
interface ApplicationConfigurationInterface
66
{
77
/**
8-
* @param string $key
9-
* @param $default
10-
* @param bool $nullable
8+
* @param string $key
9+
* @param mixed $default
1110
* @return mixed
1211
*/
13-
public function get(string $key, $default = null, bool $nullable = true): mixed;
12+
public function get(string $key, mixed $default = null): mixed;
1413
}

src/Configuration/DefaultApplicationConfigurationFactory.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
namespace Micro\Framework\Kernel\Configuration;
44

5-
use JetBrains\PhpStorm\Pure;
6-
75
class DefaultApplicationConfigurationFactory implements ApplicationConfigurationFactoryInterface
86
{
97
/**
@@ -16,7 +14,7 @@ public function __construct(private array $configuration)
1614
/**
1715
* @return ApplicationConfigurationInterface
1816
*/
19-
#[Pure] public function create(): ApplicationConfigurationInterface
17+
public function create(): ApplicationConfigurationInterface
2018
{
2119
return new DefaultApplicationConfiguration($this->configuration);
2220
}

src/Configuration/PluginConfiguration.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@ public function __construct(protected ApplicationConfigurationInterface $configu
1616
* @param string $separator
1717
* @return array
1818
*/
19-
protected function explodeStringToArray(string $list, string $separator=','): array
19+
protected function explodeStringToArray(string $list, string $separator = ','): array
2020
{
21+
if($separator === '') {
22+
return [$list];
23+
}
24+
2125
$itemsColl = explode($separator, $list);
2226

2327
return array_map('trim', $itemsColl);

src/Configuration/PluginRoutingKeyConfiguration.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ protected function cfg(string $key): string
2626
}
2727

2828
/**
29-
* @param string $key
30-
* @param $default
29+
* @param string $key
30+
* @param mixed $default
3131
* @param bool $nullable
3232
* @return mixed
3333
*/
34-
protected function get(string $key, $default = null, bool $nullable = true): mixed
34+
protected function get(string $key, mixed $default = null, bool $nullable = true): mixed
3535
{
3636
return $this->configuration->get(
3737
$this->cfg($key),

src/Configuration/Resolver/PluginConfigurationClassResolver.php

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@
44

55
use Micro\Framework\Kernel\Configuration\ApplicationConfigurationInterface;
66
use Micro\Framework\Kernel\Configuration\PluginConfiguration;
7+
use Micro\Framework\Kernel\Configuration\PluginConfigurationInterface;
78

89
class PluginConfigurationClassResolver
910
{
10-
/**
11-
* @var PluginConfigurationClassResolverInterface[]
12-
*/
13-
private array $resolvers;
14-
1511
/**
1612
* @param string $pluginClass
1713
* @param ApplicationConfigurationInterface $applicationConfiguration
@@ -21,18 +17,17 @@ public function __construct(
2117
private ApplicationConfigurationInterface $applicationConfiguration
2218
)
2319
{
24-
$this->resolvers = $this->getPluginClassResolvers();
2520
}
2621

2722
/**
28-
* @return PluginConfiguration
23+
* @return PluginConfigurationInterface
2924
*/
30-
public function resolve(): PluginConfiguration
25+
public function resolve(): PluginConfigurationInterface
3126
{
3227
$configClassDefault = PluginConfiguration::class;
3328
$configClasses = [];
3429

35-
foreach ($this->resolvers as $resolver) {
30+
foreach ($this->getPluginClassResolvers() as $resolver) {
3631
$configClass = $resolver->resolve($this->pluginClass);
3732

3833
if(!class_exists($configClass)) {
@@ -51,14 +46,14 @@ public function resolve(): PluginConfiguration
5146
)
5247
);
5348
}
54-
49+
/** @var class-string<PluginConfigurationInterface> $configClass */
5550
$configClass = $configClasses[0] ?? $configClassDefault;
5651

5752
return new $configClass($this->applicationConfiguration);
5853
}
5954

6055
/**
61-
* @return PluginConfigurationClassResolver[]
56+
* @return PluginConfigurationClassResolverInterface[]
6257
*/
6358
protected function getPluginClassResolvers(): array
6459
{

src/Kernel.php

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Micro\Component\DependencyInjection\Container;
66
use Micro\Framework\Kernel\Configuration\ApplicationConfigurationInterface;
77
use Micro\Framework\Kernel\Configuration\PluginConfiguration;
8+
use Micro\Framework\Kernel\Configuration\PluginConfigurationInterface;
89
use Micro\Framework\Kernel\Configuration\Resolver\PluginConfigurationClassResolver;
910
use Micro\Framework\Kernel\Plugin\ApplicationPluginInterface;
1011
use Micro\Framework\Kernel\Plugin\PluginBootLoaderInterface;
@@ -79,18 +80,13 @@ public function container(): Container
7980
}
8081

8182
/**
82-
* @template T of \Micro\Framework\Kernel\Plugin\ApplicationPluginInterface
83-
* @psalm-param class-string<T>
84-
*
8583
* @param string $applicationPluginClass
8684
* @return void
8785
*/
8886
protected function loadPlugin(string $applicationPluginClass): void
8987
{
9088
$pluginConfiguration = $this->resolvePluginConfiguration($applicationPluginClass);
91-
/***
92-
* @var ApplicationPluginInterface $plugin
93-
*/
89+
/** @var ApplicationPluginInterface $plugin */
9490
$plugin = new $applicationPluginClass($pluginConfiguration);
9591

9692
foreach ($this->pluginBootLoaderCollection as $bootLoader) {
@@ -118,13 +114,10 @@ protected function createPluginConfigurationResolver(string $applicationPluginCl
118114
}
119115

120116
/**
121-
* @template T of \Micro\Framework\Kernel\Plugin\ApplicationPluginInterface
122-
* @psalm-param class-string<T>
123-
*
124117
* @param string $applicationPluginClass
125-
* @return void
118+
* @return PluginConfigurationInterface
126119
*/
127-
protected function resolvePluginConfiguration(string $applicationPluginClass): PluginConfiguration
120+
protected function resolvePluginConfiguration(string $applicationPluginClass): PluginConfigurationInterface
128121
{
129122
return $this->createPluginConfigurationResolver($applicationPluginClass)->resolve();
130123
}

src/KernelBuilder.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,26 @@ class KernelBuilder
1717
private array $pluginCollection;
1818

1919
/**
20-
* @var ApplicationConfigurationInterface
20+
* @var ApplicationConfigurationInterface|null
2121
*/
22-
private ApplicationConfigurationInterface $configuration;
22+
private ?ApplicationConfigurationInterface $configuration;
2323

2424
/**
2525
* @var PluginBootLoaderInterface[]
2626
*/
2727
private array $bootLoaderPluginCollection;
2828

2929
/**
30-
* @var Container
30+
* @var Container|null
3131
*/
32-
private Container $container;
32+
private ?Container $container;
3333

3434
public function __construct()
3535
{
3636
$this->pluginCollection = [];
3737
$this->bootLoaderPluginCollection = [];
38+
$this->configuration = null;
39+
$this->container = null;
3840
}
3941

4042
/**

0 commit comments

Comments
 (0)