pdf-finder/src/IO/Input/FinderArguments.php

44 lines
898 B
PHP

<?php
namespace IO\Input;
use Filter\DocumentFilter;
use Filter\FilterParser;
use IO\Filesystem\Directory;
class FinderArguments
{
use ArgvAccess;
private Directory $directory;
private array $filters;
public static function createFromGlobals(): self
{
$arguments = self::getScriptArgs();
$directory = array_shift($arguments);
return new self($directory, $arguments);
}
public function __construct(?string $directory, array $filters)
{
$factory = new FilterParser();
$this->directory = Directory::fromString($directory);
$this->filters = array_map([$factory, 'parse'], $filters);
}
public function getDirectory(): Directory
{
return $this->directory;
}
/**
* @return DocumentFilter[]
*/
public function getFilters(): array
{
return $this->filters;
}
}