chore: complete update
This commit is contained in:
31
src/Framework/Core/AttributeMapperLocator.php
Normal file
31
src/Framework/Core/AttributeMapperLocator.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Core;
|
||||
|
||||
use RecursiveDirectoryIterator;
|
||||
use RecursiveIteratorIterator;
|
||||
use ReflectionClass;
|
||||
|
||||
final readonly class AttributeMapperLocator
|
||||
{
|
||||
private InterfaceImplementationLocator $locator;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->locator = new InterfaceImplementationLocator();
|
||||
}
|
||||
|
||||
/**
|
||||
* Findet alle Klassen, die das AttributeMapper-Interface implementieren
|
||||
*
|
||||
* @param string $directory Das Basisverzeichnis, in dem gesucht werden soll
|
||||
* @return AttributeMapper[] Array von AttributeMapper-Instanzen
|
||||
*/
|
||||
public function locateMappers(string $directory): array
|
||||
{
|
||||
/** @var AttributeMapper[] $mappers */
|
||||
$mappers = $this->locator->locate($directory, AttributeMapper::class);
|
||||
return $mappers;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user