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);
 }
Exemplo n.º 2
0
 /** @return Configuration */
 public function loadConfiguration()
 {
     return Configuration::fromArray(Yaml::parse(file_get_contents($this->configFilePathname)));
 }
Exemplo n.º 3
0
 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;
     });
 }
Exemplo n.º 4
0
 public function testFromWithNullExcludeFiles()
 {
     $configuration = Configuration::fromArray(['layers' => [], 'paths' => [], 'exclude_files' => null, 'ruleset' => []]);
     $this->assertEquals([], $configuration->getExcludeFiles());
 }