public getCollector ( |
||
$config | ||
리턴 |
/** * @covers TheSeer\phpDox\Factory::getCollector * @uses TheSeer\phpDox\SilentProgressLogger * @uses TheSeer\phpDox\FileInfo * @uses TheSeer\phpDox\Collector\Collector * @uses TheSeer\phpDox\Collector\IndexCollection * @uses TheSeer\phpDox\Collector\SourceCollection * @uses TheSeer\phpDox\Collector\Project * @uses TheSeer\phpDox\Collector\Backend\Factory * @uses TheSeer\phpDox\Collector\Backend\PHPParser * @uses TheSeer\phpDox\DocBlock\Parser */ public function testGetCollector() { $config = $this->getMockBuilder('TheSeer\\phpDox\\CollectorConfig')->disableOriginalConstructor()->getMock(); $config->expects($this->once())->method('getSourceDirectory')->will($this->returnValue(new FileInfo(''))); $config->expects($this->once())->method('getWorkDirectory')->will($this->returnValue(new FileInfo(''))); $config->expects($this->once())->method('getBackend')->will($this->returnValue('parser')); $this->assertInstanceOf('TheSeer\\phpDox\\Collector\\Collector', $this->factory->getCollector($config)); }
/** * Run collection process on given directory tree * * @param CollectorConfig $config Configuration options * * @throws ApplicationException * @return void */ public function runCollector(CollectorConfig $config) { $this->logger->log("Starting collector"); $srcDir = $config->getSourceDirectory(); if (!$srcDir->isDir()) { throw new ApplicationException(sprintf('Invalid src directory "%s" specified', $srcDir), ApplicationException::InvalidSrcDirectory); } $collector = $this->factory->getCollector($config); $scanner = $this->factory->getScanner($config->getIncludeMasks(), $config->getExcludeMasks()); $project = $collector->run($scanner); if ($collector->hasParseErrors()) { $this->logger->log('The following file(s) had errors during processing and were excluded:'); foreach ($collector->getParseErrors() as $file => $message) { $this->logger->log(' - ' . $file . ' (' . $message . ')'); } } $this->logger->log(sprintf("Saving results to directory '%s'", $config->getWorkDirectory())); $vanished = $project->cleanVanishedFiles(); if (count($vanished) > 0) { $this->logger->log(sprintf("Removed %d vanished file(s) from project:", count($vanished))); foreach ($vanished as $file) { $this->logger->log(' - ' . $file); } } $changed = $project->save(); if ($config->doResolveInheritance()) { /** @var $resolver InheritanceResolver */ $resolver = $this->factory->getInheritanceResolver(); $resolver->resolve($changed, $project, $config->getInheritanceConfig()); if ($resolver->hasUnresolved()) { $this->logger->log('The following unit(s) had missing dependencies during inheritance resolution:'); foreach ($resolver->getUnresolved() as $class => $missing) { if (is_array($missing)) { $missing = join(', ', $missing); } $this->logger->log(' - ' . $class . ' (missing ' . $missing . ')'); } } } $this->logger->log("Collector process completed\n"); }