add pdf reader modul
This commit is contained in:
32
src/Knowledge/Extractor/ExtractorResolver.php
Normal file
32
src/Knowledge/Extractor/ExtractorResolver.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Knowledge\Extractor;
|
||||
|
||||
final class ExtractorResolver
|
||||
{
|
||||
/**
|
||||
* @param iterable<DocumentExtractorInterface> $extractors
|
||||
*/
|
||||
public function __construct(
|
||||
private iterable $extractors
|
||||
) {
|
||||
}
|
||||
|
||||
public function extract(string $path): string
|
||||
{
|
||||
$extension = pathinfo($path, PATHINFO_EXTENSION);
|
||||
|
||||
foreach ($this->extractors as $extractor) {
|
||||
if ($extractor->supports($extension)) {
|
||||
return $extractor->extract($path);
|
||||
}
|
||||
}
|
||||
|
||||
throw new \RuntimeException(sprintf(
|
||||
'No extractor available for extension "%s".',
|
||||
$extension
|
||||
));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user