<?php
namespace Plesk\Wappspector;
use Plesk\Wappspector\Matchers\MatcherInterface;
use Plesk\Wappspector\MatchResult\EmptyMatchResult;
use Plesk\Wappspector\MatchResult\MatchResultInterface;
use Throwable;
final class Wappspector
{
/**
* @param callable $fsFactory
*/
public function __construct(private $fsFactory, private array $matchers)
{
}
/**
* @return MatchResultInterface[]
* @throws Throwable
*/
public function run(string $path, string $basePath = '/', int $matchersLimit = 0): iterable
{
$fs = ($this->fsFactory)($basePath);
$result = [];
/** @var MatcherInterface $matcher */
foreach ($this->matchers as $matcher) {
if (($match = $matcher->match($fs, $path)) instanceof EmptyMatchResult) {
continue;
}
$result[] = $match;
if ($matchersLimit > 0 && count($result) >= $matchersLimit) {
break;
}
}
return $result;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Command | Folder | 0755 |
|
|
| Helper | Folder | 0755 |
|
|
| MatchResult | Folder | 0755 |
|
|
| Matchers | Folder | 0755 |
|
|
| DIContainer.php | File | 384 B | 0644 |
|
| FileSystemFactory.php | File | 364 B | 0644 |
|
| Wappspector.php | File | 1.01 KB | 0644 |
|
| container.php | File | 1.83 KB | 0644 |
|