/**
  * 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;
 }
Esempio n. 3
0
 /**
  * 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');
         }
     }
 }
Esempio n. 4
0
 /**
  * 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;
 }
Esempio n. 6
0
 /**
  * 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);
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 /**
  * 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;
 }