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

44 lines
898 B
PHP
Raw Normal View History

2021-03-23 21:58:40 +01:00
<?php
namespace IO\Input;
use Filter\DocumentFilter;
2021-04-08 15:36:57 +02:00
use Filter\FilterParser;
use IO\Filesystem\Directory;
2021-03-23 21:58:40 +01:00
class FinderArguments
{
use ArgvAccess;
2021-04-08 15:36:57 +02:00
private Directory $directory;
2021-03-23 21:58:40 +01:00
private array $filters;
public static function createFromGlobals(): self
{
2021-04-08 15:36:57 +02:00
$arguments = self::getScriptArgs();
$directory = array_shift($arguments);
2021-03-23 21:58:40 +01:00
2021-04-08 15:36:57 +02:00
return new self($directory, $arguments);
2021-03-23 21:58:40 +01:00
}
2021-03-23 23:10:23 +01:00
public function __construct(?string $directory, array $filters)
{
2021-04-08 15:36:57 +02:00
$factory = new FilterParser();
$this->directory = Directory::fromString($directory);
$this->filters = array_map([$factory, 'parse'], $filters);
2021-03-23 23:10:23 +01:00
}
2021-04-08 15:36:57 +02:00
public function getDirectory(): Directory
2021-03-23 21:58:40 +01:00
{
return $this->directory;
}
/**
* @return DocumentFilter[]
*/
public function getFilters(): array
{
return $this->filters;
}
}