/** * Constructor */ public function __construct() { parent::__construct(); $finder = $this; $finder->setReader(new AnnotationReader())->files()->name('*.php')->filter(function (\SplFileInfo $file) use($finder) { try { $fileInspector = new FileInspector($file->getPathname()); $classInspector = $fileInspector->getClassInspector($finder->getReader()); foreach ($finder->getContainsAtLeastOneOf() as $annotation) { if ($classInspector->containsClassAnnotation($annotation) || $classInspector->containsMethodAnnotation($annotation) || $classInspector->containsPropertyAnnotation($annotation)) { return true; } } } catch (AnnotationScannerException $ex) { return false; } return false; }); }
public function getIterator() { $result = array(); $finder = new SymfonyFinder(); $finder->files()->name('*.php')->in($this->path)->exclude($this->exclude); /** @var SplFileInfo $file */ foreach ($finder as $file) { try { $fileInspector = new FileInspector($file->getPathname()); $classInspector = $fileInspector->getClassInspector($this->reader); foreach ($this->annotations as $annotation) { if ($classInspector->containsClassAnnotation($annotation) || $classInspector->containsMethodAnnotation($annotation) || $classInspector->containsPropertyAnnotation($annotation)) { $result[] = new ClassFileInfo($file, $classInspector); break; } } } catch (AnnotationScannerException $ex) { continue; } } return new \ArrayIterator($result); }
public function testGetNamespace() { $this->assertEquals($this->fixtureNamespace, $this->fileInspector->getNamespace()); }