/** @covers \phpDocumentor\Fileset\Collection::getProjectRoot() */ public function testGetProjectRootWhenTwoDatafilesWereAddedReturnsDataFolder() { $this->fixture->setAllowedExtensions(array('phar', 'txt')); $this->fixture->addFile($this->getNameOfDataDir() . 'test.phar'); $this->fixture->addFile($this->getNameOfDataDir() . 'fileWithText.txt'); // realpath() steals our trailing directory separator $expected = realpath($this->getNameOfDataDir()) . DIRECTORY_SEPARATOR; $this->assertEquals($expected, $this->fixture->getProjectRoot()); }
/** * Returns the collection of files based on the input and configuration. * * @param InputInterface $input * * @return Collection */ protected function getFileCollection($input) { /** @var ConfigurationHelper $configurationHelper */ $configurationHelper = $this->getHelper('phpdocumentor_configuration'); $this->files->setAllowedExtensions($configurationHelper->getOption($input, 'extensions', 'parser/extensions', array('php', 'php3', 'phtml'), true)); $this->files->setIgnorePatterns($configurationHelper->getOption($input, 'ignore', 'files/ignore', array(), true)); $ignoreHidden = $configurationHelper->getOption($input, 'hidden', 'files/ignore-hidden', 'off'); $this->files->setIgnoreHidden($ignoreHidden !== 'off' && $ignoreHidden === false); $this->files->setFollowSymlinks($configurationHelper->getOption($input, 'ignore-symlinks', 'files/ignore-symlinks', 'off') == 'on'); $file_options = (array) $configurationHelper->getOption($input, 'filename', 'files/files', array(), true); $added_files = array(); foreach ($file_options as $glob) { if (!is_string($glob)) { continue; } $matches = glob($glob); if (is_array($matches)) { foreach ($matches as $file) { if (!empty($file)) { $file = realpath($file); if (!empty($file)) { $added_files[] = $file; } } } } } $this->files->addFiles($added_files); $directory_options = $configurationHelper->getOption($input, 'directory', 'files/directories', array(), true); $added_directories = array(); foreach ($directory_options as $glob) { if (!is_string($glob)) { continue; } $matches = glob($glob, GLOB_ONLYDIR); if (is_array($matches)) { foreach ($matches as $dir) { if (!empty($dir)) { $dir = realpath($dir); if (!empty($dir)) { $added_directories[] = $dir; } } } } } $this->files->addDirectories($added_directories); return $this->files; }
/** * Constructs a Fileset collection and returns that. * * @param array $sources List of source paths. * @param array $extensions List of extensions to scan for in directories. * * @return Collection */ protected function buildCollection(array $sources, array $extensions) { $collection = new Collection(); $collection->setAllowedExtensions($extensions); foreach ($sources as $path) { if (is_dir($path)) { $collection->addDirectory($path); continue; } $collection->addFile($path); } return $collection; }