public function getLayersByClassName($className) { $layers = []; foreach ($this->configuration->getLayers() as $configurationLayer) { foreach ($configurationLayer->getCollectors() as $configurationCollector) { $collector = $this->collectorFactory->getCollector($configurationCollector->getType()); if (!($astClassReference = $this->astMap->getClassReferenceByClassName($className))) { $astClassReference = new AstClassReference($className); } if ($collector->satisfy($configurationCollector->getArgs(), $astClassReference, $this->astMap, $this->collectorFactory, $this->astParser)) { $layers[$configurationLayer->getName()] = true; } } } return array_keys($layers); }
/** @return Configuration */ public function loadConfiguration() { return Configuration::fromArray(Yaml::parse(file_get_contents($this->configFilePathname))); }
private function collectFiles(Configuration $configuration) { $files = iterator_to_array((new Finder())->in($configuration->getPaths())->name('*.php')->files()->followLinks()->ignoreUnreadableDirs(true)->ignoreVCS(true)); return array_filter($files, function (\SplFileInfo $fileInfo) use($configuration) { foreach ($configuration->getExcludeFiles() as $excludeFiles) { if (preg_match('/' . $excludeFiles . '/i', $fileInfo->getPathname())) { return false; } } return true; }); }
public function testFromWithNullExcludeFiles() { $configuration = Configuration::fromArray(['layers' => [], 'paths' => [], 'exclude_files' => null, 'ruleset' => []]); $this->assertEquals([], $configuration->getExcludeFiles()); }