Skip to content

Commit cd01ba3

Browse files
committed
v2.0RC-1
1 parent a10116e commit cd01ba3

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

src/Boot/ConfigurationProviderBootLoader.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
use Micro\Framework\Kernel\Configuration\ApplicationConfigurationFactoryInterface;
66
use Micro\Framework\Kernel\Configuration\ApplicationConfigurationInterface;
77
use Micro\Framework\Kernel\Configuration\DefaultApplicationConfigurationFactory;
8-
use Micro\Framework\Kernel\Configuration\Plugin\ConfigurableInterface;
8+
use Micro\Framework\Kernel\Configuration\Resolver\PluginConfigurationClassResolver;
9+
use Micro\Framework\Kernel\Plugin\ConfigurableInterface;
910
use Micro\Framework\Kernel\Plugin\PluginBootLoaderInterface;
1011

1112
class ConfigurationProviderBootLoader implements PluginBootLoaderInterface
1213
{
13-
private readonly ApplicationConfigurationInterface $configuration;
14+
private readonly ApplicationConfigurationInterface $applicationConfiguration;
1415

1516
/**
1617
* @param array|ApplicationConfigurationInterface|ApplicationConfigurationFactoryInterface $config
@@ -29,7 +30,7 @@ public function __construct(
2930
$applicationConfig = $applicationConfig->create();
3031
}
3132

32-
$this->configuration = $applicationConfig;
33+
$this->applicationConfiguration = $applicationConfig;
3334
}
3435

3536
/**
@@ -41,6 +42,17 @@ public function boot(object $applicationPlugin): void
4142
return;
4243
}
4344

44-
$applicationPlugin->setConfiguration($this->configuration);
45+
$applicationPlugin->setConfiguration(
46+
$this->createPluginConfigurationClassResolver()
47+
->resolve($applicationPlugin->name())
48+
);
49+
}
50+
51+
/**
52+
* {@inheritDoc}
53+
*/
54+
protected function createPluginConfigurationClassResolver(): PluginConfigurationClassResolver
55+
{
56+
return new PluginConfigurationClassResolver($this->applicationConfiguration);
4557
}
4658
}

src/Configuration/Resolver/PluginConfigurationClassResolver.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,26 @@
99
class PluginConfigurationClassResolver
1010
{
1111
/**
12-
* @param string $pluginClass
1312
* @param ApplicationConfigurationInterface $applicationConfiguration
1413
*/
1514
public function __construct(
16-
private readonly string $pluginClass,
1715
private readonly ApplicationConfigurationInterface $applicationConfiguration
1816
)
1917
{
2018
}
2119

2220
/**
21+
* @param string $pluginClass
22+
*
2323
* @return PluginConfigurationInterface
2424
*/
25-
public function resolve(): PluginConfigurationInterface
25+
public function resolve(string $pluginClass): PluginConfigurationInterface
2626
{
2727
$configClassDefault = PluginConfiguration::class;
2828
$configClasses = [];
2929

3030
foreach ($this->getPluginClassResolvers() as $resolver) {
31-
$configClass = $resolver->resolve($this->pluginClass);
31+
$configClass = $resolver->resolve($pluginClass);
3232

3333
if(!class_exists($configClass)) {
3434
continue;

src/Configuration/Resolver/PluginConfigurationClassResolverInterface.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
interface PluginConfigurationClassResolverInterface
66
{
77
/**
8-
* @param string $pluginClass
8+
* @param string $pluginClass
9+
*
910
* @return string
1011
*/
1112
public function resolve(string $pluginClass): string;

src/Plugin/ConfigurableInterface.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ public function configuration(): PluginConfigurationInterface;
1717
* @return void
1818
*/
1919
public function setConfiguration(PluginConfigurationInterface $pluginConfiguration): void;
20+
21+
/**
22+
* @return string
23+
*/
24+
public function name(): string;
2025
}

0 commit comments

Comments
 (0)