/** * testLogFileIsCreatedForUnstructuredCode * * @param string $className Class name of a logger implementation. * @param string $extension Log file extension. * * @return void * @dataProvider getLoggerClassNames */ public function testLogFileIsCreatedForUnstructuredCode($className, $extension) { $file = self::createRunResourceURI() . '.' . $extension; $logger = new $className(); $logger->setLogFile($file); $factory = new PHP_Depend_Util_Configuration_Factory(); $pdepend = new PHP_Depend($factory->createDefault()); $pdepend->addFile(self::createCodeResourceUriForTest()); $pdepend->addLogger($logger); $pdepend->analyze(); self::assertFileExists($file); }
/** * (non-PHPdoc) * @see MageUC_Console_Task::execute() */ public function execute() { print '[pdepend] Lancement de PHP Depend : ' . $this->getArgument('to_check') . PHP_EOL; $this->_runner = new PHP_Depend_TextUI_Runner(); $this->_runner->addProcessListener(new PHP_Depend_TextUI_ResultPrinter()); $this->_runner->addLogger('summary-xml', self::getReportFileName('summary.xml')); $this->_runner->addLogger('jdepend-chart', self::getReportFileName('jdepend.svg')); $this->_runner->addLogger('jdepend-xml', self::getReportFileName('jdepend.xml')); $this->_runner->addLogger('overview-pyramid', self::getReportFileName('pyramid.svg')); $arSource = $this->_getFilesToCheck($this->getArgument('to_check')); if (!is_array($arSource)) { $arSource = array($arSource); } $this->_runner->setSourceArguments($arSource); $configurationFactory = new PHP_Depend_Util_Configuration_Factory(); $configuration = $configurationFactory->createDefault(); // Store in config registry PHP_Depend_Util_ConfigurationInstance::set($configuration); $this->_runner->setConfiguration($configuration); $this->_runner->run(); print '[pdepend] done' . PHP_EOL; }
/** * Executes PHP_Depend_TextUI_Runner against PhingFile or a FileSet * * @return void * @throws BuildException */ public function main() { $autoload = new PHP_Depend_Autoload(); $autoload->register(); if (!isset($this->_file) and count($this->_filesets) == 0) { throw new BuildException("Missing either a nested fileset or attribute 'file' set"); } if (count($this->_loggers) == 0) { throw new BuildException("Missing nested 'logger' element"); } $this->validateLoggers(); $this->validateAnalyzers(); $filesToParse = array(); if ($this->_file instanceof PhingFile) { $filesToParse[] = $this->_file->__toString(); } else { // append any files in filesets foreach ($this->_filesets as $fs) { $files = $fs->getDirectoryScanner($this->project)->getIncludedFiles(); foreach ($files as $filename) { $f = new PhingFile($fs->getDir($this->project), $filename); $filesToParse[] = $f->getAbsolutePath(); } } } $this->_runner = new PHP_Depend_TextUI_Runner(); $this->_runner->addProcessListener(new PHP_Depend_TextUI_ResultPrinter()); $configurationFactory = new PHP_Depend_Util_Configuration_Factory(); $configuration = $configurationFactory->createDefault(); $this->_runner->setConfiguration($configuration); $this->_runner->setSourceArguments($filesToParse); foreach ($this->_loggers as $logger) { // Register logger $this->_runner->addLogger($logger->getType(), $logger->getOutfile()->__toString()); } foreach ($this->_analyzers as $analyzer) { // Register additional analyzer $this->_runner->addOption($analyzer->getType(), $analyzer->getValue()); } // Disable annotation parsing if ($this->_withoutAnnotations) { $this->_runner->setWithoutAnnotations(); } // Enable bad documentation support if ($this->_supportBadDocumentation) { $this->_runner->setSupportBadDocumentation(); } // Check for suffix if (count($this->_allowedFileExtensions) > 0) { $this->_runner->setFileExtensions($this->_allowedFileExtensions); } // Check for ignore directories if (count($this->_excludeDirectories) > 0) { $this->_runner->setExcludeDirectories($this->_excludeDirectories); } // Check for exclude packages if (count($this->_excludePackages) > 0) { $this->_runner->setExcludePackages($this->_excludePackages); } // Check for configuration option if ($this->_configFile instanceof PhingFile) { if (file_exists($this->_configFile->__toString()) === false) { throw new BuildException('The configuration file "' . $this->_configFile->__toString() . '" doesn\'t exist.'); } // Load configuration file $config = new PHP_Depend_Util_Configuration($this->_configFile->__toString(), null, true); // Store in config registry PHP_Depend_Util_ConfigurationInstance::set($config); } if ($this->_debug) { require_once 'PHP/Depend/Util/Log.php'; // Enable debug logging PHP_Depend_Util_Log::setSeverity(PHP_Depend_Util_Log::DEBUG); } $this->_runner->run(); if ($this->_runner->hasParseErrors() === true) { $this->log('Following errors occurred:'); foreach ($this->_runner->getParseErrors() as $error) { $this->log($error); } if ($this->_haltonerror === true) { throw new BuildException('Errors occurred during parse process'); } } }
/** * Creates a clean php depend instance with some base settings. * * @return PHP_Depend */ private function _createInstance() { $factory = new PHP_Depend_Util_Configuration_Factory(); return new PHP_Depend($factory->createDefault()); }
/** * @return PHP_Depend_TextUI_Runner */ private function createLegacyRunner() { $runner = new PHP_Depend_TextUI_Runner(); $runner->addProcessListener(new PHP_Depend_TextUI_ResultPrinter()); if ($this->debug) { require_once 'PHP/Depend/Util/Log.php'; // Enable debug logging PHP_Depend_Util_Log::setSeverity(PHP_Depend_Util_Log::DEBUG); } $configuration = $this->getConfiguration(); if ($configuration === null) { $configurationFactory = new PHP_Depend_Util_Configuration_Factory(); $configuration = $configurationFactory->createDefault(); } PHP_Depend_Util_ConfigurationInstance::set($configuration); $runner->setConfiguration($configuration); return $runner; }
/** * testCreateReturnsExpectedConfigurationInstance * * @return void * @group pdepend * @group pdepend::util * @group pdepend::util::configuration * @group unittest */ public function testCreateReturnsExpectedConfigurationInstance() { $file = self::createCodeResourceUriForTest() . '/pdepend.xml'; $factory = new PHP_Depend_Util_Configuration_Factory(); $config = $factory->create($file); self::assertEquals(42, $config->imageConvert->fontSize); }
/** * Parses the cli arguments. * * @return boolean */ protected function handleArguments() { if (!isset($_SERVER['argv'])) { if (false === (bool) ini_get('register_argc_argv')) { // @codeCoverageIgnoreStart echo 'Please enable register_argc_argv in your php.ini.'; } else { // @codeCoverageIgnoreEnd echo 'Unknown error, no $argv array available.'; } echo PHP_EOL, PHP_EOL; return false; } $argv = $_SERVER['argv']; // Remove the pdepend command line file array_shift($argv); if (count($argv) === 0) { return false; } // Last argument must be a list of source directories if (strpos(end($argv), '--') !== 0) { $this->_runner->setSourceArguments(explode(',', array_pop($argv))); } for ($i = 0, $c = count($argv); $i < $c; ++$i) { // Is it an ini_set option? if ($argv[$i] === '-d' && isset($argv[$i + 1])) { if (strpos($argv[++$i], '=') === false) { ini_set($argv[$i], 'on'); } else { list($key, $value) = explode('=', $argv[$i]); ini_set($key, $value); } } else { if (strpos($argv[$i], '=') === false) { $this->_options[$argv[$i]] = true; } else { list($key, $value) = explode('=', $argv[$i]); $this->_options[$key] = $value; } } } // Check for suffix option if (isset($this->_options['--suffix'])) { // Get file extensions $extensions = explode(',', $this->_options['--suffix']); // Set allowed file extensions $this->_runner->setFileExtensions($extensions); unset($this->_options['--suffix']); } // Check for ignore option if (isset($this->_options['--ignore'])) { // Get exclude directories $directories = explode(',', $this->_options['--ignore']); // Set exclude directories $this->_runner->setExcludeDirectories($directories); unset($this->_options['--ignore']); } // Check for exclude package option if (isset($this->_options['--exclude'])) { // Get exclude directories $packages = explode(',', $this->_options['--exclude']); // Set exclude packages $this->_runner->setExcludePackages($packages); unset($this->_options['--exclude']); } // Check for the bad documentation option if (isset($this->_options['--bad-documentation'])) { echo "Option --bad-documentation is ambiguous.", PHP_EOL; unset($this->_options['--bad-documentation']); } $configurationFactory = new PHP_Depend_Util_Configuration_Factory(); // Check for configuration option if (isset($this->_options['--configuration'])) { // Get config file $configFile = $this->_options['--configuration']; unset($this->_options['--configuration']); $configuration = $configurationFactory->create($configFile); } else { $configuration = $configurationFactory->createDefault(); } // Store in config registry PHP_Depend_Util_ConfigurationInstance::set($configuration); $this->_runner->setConfiguration($configuration); if (isset($this->_options['--debug'])) { unset($this->_options['--debug']); PHP_Depend_Util_Log::setSeverity(PHP_Depend_Util_Log::DEBUG); } return true; }
/** * Creates a test configuration instance. * * @return PHP_Depend_Util_Configuration * @since 0.10.0 */ protected function createConfigurationFixture() { $factory = new PHP_Depend_Util_Configuration_Factory(); $config = $factory->createDefault(); return $config; }