Skip to content

Commit e32423d

Browse files
committed
Kernek:plugins implements
1 parent 80e05b7 commit e32423d

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/Configuration/PluginConfiguration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public function __construct(protected ApplicationConfigurationInterface $configu
1414
/**
1515
* @param string $list
1616
* @param string $separator
17-
* @return array
17+
* @return string[]
1818
*/
1919
protected function explodeStringToArray(string $list, string $separator = ','): array
2020
{

src/Kernel.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,13 @@ protected function loadPlugin(string $applicationPluginClass): void
9999
/**
100100
* {@inheritDoc}
101101
*/
102-
public function plugins(): array
102+
public function plugins(string $interfaceInherited = null): iterable
103103
{
104-
return $this->plugins;
104+
foreach ($this->plugins as $plugin) {
105+
if(!$interfaceInherited || ($plugin instanceof $interfaceInherited)) {
106+
yield $plugin;
107+
}
108+
}
105109
}
106110

107111
/**

src/KernelInterface.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ public function run(): void;
2929
public function terminate(): void;
3030

3131
/**
32-
* @return ApplicationPluginInterface[]
32+
* @param string|null $interfaceInherited
33+
*
34+
* @return iterable
3335
*/
34-
public function plugins(): array;
36+
public function plugins(string $interfaceInherited = null): iterable;
3537
}

0 commit comments

Comments
 (0)