PhpBench\Benchmark\BenchmarkFinder::findBenchmarks PHP Method

findBenchmarks() public method

Build the BenchmarkMetadata collection.
public findBenchmarks ( string $path, array $subjectFilter = [], array $groupFilter = [] )
$path string
$subjectFilter array
$groupFilter array
    public function findBenchmarks($path, array $subjectFilter = [], array $groupFilter = [])
    {
        $finder = new Finder();
        $path = PhpBench::normalizePath($path);
        if (!file_exists($path)) {
            throw new \InvalidArgumentException(sprintf('File or directory "%s" does not exist (cwd: %s)', $path, getcwd()));
        }
        if (is_dir($path)) {
            $finder->in($path)->name('*.php');
        } else {
            // the path is already a file, just restrict the finder to that.
            $finder->in(dirname($path))->depth(0)->name(basename($path));
        }
        $benchmarks = [];
        foreach ($finder as $file) {
            if (!is_file($file)) {
                continue;
            }
            $benchmark = $this->factory->getMetadataForFile($file->getPathname());
            if (null === $benchmark) {
                continue;
            }
            if ($groupFilter) {
                $benchmark->filterSubjectGroups($groupFilter);
            }
            if ($subjectFilter) {
                $benchmark->filterSubjectNames($subjectFilter);
            }
            if (false === $benchmark->hasSubjects()) {
                continue;
            }
            $benchmarks[] = $benchmark;
        }
        return $benchmarks;
    }