Skip to content

Commit 924c4e2

Browse files
committed
Temporary
1 parent b965334 commit 924c4e2

11 files changed

+98
-21
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"email": "[email protected]"
1616
}
1717
],
18-
"minimum-stability": "stable",
1918
"require": {
19+
"php": ">=8.0"
2020
}
2121
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Micro\Framework\Kernel\Configuration\Exception;
4+
5+
class InvalidConfigurationException extends \RuntimeException
6+
{
7+
}

src/Configuration/PluginConfiguration.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,24 @@
22

33
namespace Micro\Framework\Kernel\Configuration;
44

5-
class PluginConfiguration
5+
class PluginConfiguration implements PluginConfigurationInterface
66
{
77
/**
88
* @param ApplicationConfigurationInterface $configuration
99
*/
1010
public function __construct(protected ApplicationConfigurationInterface $configuration)
1111
{
1212
}
13+
14+
/**
15+
* @param string $list
16+
* @param string $separator
17+
* @return array
18+
*/
19+
protected function explodeStringToArray(string $list, string $separator=','): array
20+
{
21+
$itemsColl = explode($separator, $list);
22+
23+
return array_map('trim', $itemsColl);
24+
}
1325
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Micro\Framework\Kernel\Configuration;
4+
5+
interface PluginConfigurationInterface
6+
{
7+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
namespace Micro\Framework\Kernel\Configuration;
4+
5+
class PluginRoutingKeyConfiguration extends PluginConfiguration
6+
{
7+
/**
8+
* @param ApplicationConfigurationInterface $configuration
9+
* @param string $configRoutingKey
10+
*/
11+
public function __construct(
12+
ApplicationConfigurationInterface $configuration,
13+
protected string $configRoutingKey
14+
) {
15+
parent::__construct($configuration);
16+
}
17+
18+
/**
19+
* @param string $key
20+
* @return string
21+
*/
22+
protected function cfg(string $key): string
23+
{
24+
return sprintf($key, mb_strtoupper($this->configRoutingKey));
25+
}
26+
27+
/**
28+
* @param string $key
29+
* @param $default
30+
* @return mixed
31+
*/
32+
protected function get(string $key, $default = null): mixed
33+
{
34+
return $this->configuration->get(
35+
$this->cfg($key),
36+
$default
37+
);
38+
}
39+
}
40+

src/Configuration/Resolver/PluginConfigurationClassResolver.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ class PluginConfigurationClassResolver
1414
private array $resolvers;
1515

1616
/**
17-
* @param string $pluginClass
17+
* @param string $pluginClass
1818
* @param ApplicationConfigurationInterface $applicationConfiguration
1919
*/
2020
public function __construct(
21-
private string $pluginClass,
22-
private ApplicationConfigurationInterface $applicationConfiguration
21+
private string $pluginClass,
22+
private ApplicationConfigurationInterface $applicationConfiguration
2323
) {
2424
$this->resolvers = $this->getPluginClassResolvers();
2525
}

src/Configuration/Resolver/PluginConfigurationClassResolverInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
interface PluginConfigurationClassResolverInterface
66
{
77
/**
8-
* @param string $pluginClass
8+
* @param string $pluginClass
99
* @return string
1010
*/
1111
public function resolve(string $pluginClass): string;

src/Kernel.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@ class Kernel implements KernelInterface
2929
private array $plugins;
3030

3131
/**
32-
* @param array $applicationPluginCollection
32+
* @param array $applicationPluginCollection
3333
* @param ApplicationConfigurationInterface $configuration
34-
* @param Container|null $container
35-
* @param PluginBootLoaderInterface[] $pluginBootLoaderCollection
34+
* @param Container|null $container
35+
* @param PluginBootLoaderInterface[] $pluginBootLoaderCollection
3636
*/
3737
public function __construct(
38-
private array $applicationPluginCollection,
39-
private ApplicationConfigurationInterface $configuration,
40-
private array $pluginBootLoaderCollection,
41-
private ?Container $container = null
38+
private array $applicationPluginCollection,
39+
private ApplicationConfigurationInterface $configuration,
40+
private array $pluginBootLoaderCollection,
41+
private ?Container $container = null
4242
) {
4343
$this->isStarted = false;
4444
$this->isTerminated = false;
@@ -89,7 +89,9 @@ public function container(): Container
8989
protected function loadPlugin(string $applicationPluginClass): void
9090
{
9191
$pluginConfiguration = $this->resolvePluginConfiguration($applicationPluginClass);
92-
/*** @var ApplicationPluginInterface $plugin */
92+
/***
93+
* @var ApplicationPluginInterface $plugin
94+
*/
9395
$plugin = new $applicationPluginClass($pluginConfiguration);
9496

9597
foreach ($this->pluginBootLoaderCollection as $bootLoader) {
@@ -108,7 +110,7 @@ public function plugins(): array
108110
}
109111

110112
/**
111-
* @param string $applicationPluginClass
113+
* @param string $applicationPluginClass
112114
* @return PluginConfigurationClassResolver
113115
*/
114116
protected function createPluginConfigurationResolver(string $applicationPluginClass): PluginConfigurationClassResolver

src/KernelBuilder.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function __construct()
3838
}
3939

4040
/**
41-
* @param array $applicationPluginCollection
41+
* @param array $applicationPluginCollection
4242
* @return $this
4343
*/
4444
public function setApplicationPlugins(array $applicationPluginCollection): self
@@ -49,7 +49,7 @@ public function setApplicationPlugins(array $applicationPluginCollection): self
4949
}
5050

5151
/**
52-
* @param PluginBootLoaderInterface $bootLoader
52+
* @param PluginBootLoaderInterface $bootLoader
5353
* @return $this
5454
*/
5555
public function addBootLoader(PluginBootLoaderInterface $bootLoader): self
@@ -60,7 +60,7 @@ public function addBootLoader(PluginBootLoaderInterface $bootLoader): self
6060
}
6161

6262
/**
63-
* @param PluginBootLoaderInterface[] $bootLoaderCollection
63+
* @param PluginBootLoaderInterface[] $bootLoaderCollection
6464
* @return $this
6565
*/
6666
public function setBootLoaders(array $bootLoaderCollection): self
@@ -73,7 +73,7 @@ public function setBootLoaders(array $bootLoaderCollection): self
7373
}
7474

7575
/**
76-
* @param ApplicationConfigurationInterface $configuration
76+
* @param ApplicationConfigurationInterface $configuration
7777
* @return $this
7878
*/
7979
public function setApplicationConfiguration(ApplicationConfigurationInterface $configuration): self
@@ -84,7 +84,7 @@ public function setApplicationConfiguration(ApplicationConfigurationInterface $c
8484
}
8585

8686
/**
87-
* @param Container $container
87+
* @param Container $container
8888
* @return $this
8989
*/
9090
public function setContainer(Container $container): self

src/Plugin/AbstractPlugin.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Micro\Component\DependencyInjection\Container;
66
use Micro\Framework\Kernel\Configuration\PluginConfiguration;
7+
use Micro\Framework\Kernel\Configuration\PluginConfigurationInterface;
78

89
abstract class AbstractPlugin implements ApplicationPluginInterface
910
{
@@ -15,6 +16,14 @@ public function provideDependencies(Container $container): void
1516
{
1617
}
1718

19+
/**
20+
* @return PluginConfigurationInterface
21+
*/
22+
protected function configuration(): PluginConfigurationInterface
23+
{
24+
return $this->configuration;
25+
}
26+
1827
/**
1928
* @return string
2029
*/

0 commit comments

Comments
 (0)