Beispiel #1
0
 public function main()
 {
     $input = new \ezcConsoleInput();
     $output = new \ezcConsoleOutput();
     $input->registerOption(new \ezcConsoleOption('h', 'help'));
     $input->registerOption(new \ezcConsoleOption('p', 'process'));
     $input->process();
     if ($input->getOption("p")->value) {
         $parser = new PHPLpm\Parser();
         $result = $parser->parse(file_get_contents("_testdata/sample.php", 1));
         $table = new \ezcConsoleTable($output, 60);
         $table[0][0]->content = "Class";
         $table[0][1]->content = "Method";
         $table[0][2]->content = "Lines";
         $i = 1;
         foreach ($result as $class => $methods) {
             foreach ($methods as $method) {
                 $row = $table[$i];
                 $row[0]->content = $class;
                 $row[1]->content = $method["name"];
                 $row[2]->content = (string) $method["lines"];
                 $i++;
             }
         }
         $table->outputTable();
         print "\n";
         //print_r($result);
     }
 }
 /**
  * Main method.
  */
 public function main()
 {
     $input = new ezcConsoleInput();
     $output = new ezcConsoleOutput();
     $input->registerOption(new ezcConsoleOption('', 'count-tests', ezcConsoleInput::TYPE_NONE, FALSE, FALSE));
     $input->registerOption(new ezcConsoleOption('', 'exclude', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'log-xml', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'log-csv', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'suffixes', ezcConsoleInput::TYPE_STRING, 'php', FALSE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'progress', ezcConsoleInput::TYPE_NONE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         $this->showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             $this->printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     if (empty($arguments)) {
         $this->showHelp();
         exit(1);
     }
     $countTests = $input->getOption('count-tests')->value;
     $excludes = $input->getOption('exclude')->value;
     $logXml = $input->getOption('log-xml')->value;
     $logCsv = $input->getOption('log-csv')->value;
     $suffixes = array_map('trim', explode(',', $input->getOption('suffixes')->value));
     if ($input->getOption('progress')->value !== FALSE) {
         $progress = $output;
     } else {
         $progress = NULL;
     }
     $this->printVersionString();
     $files = $this->findFiles($arguments, $excludes, $suffixes);
     if (empty($files)) {
         $this->showError("No files found to scan.\n");
     }
     $analyser = new PHPLOC_Analyser($progress);
     $count = $analyser->countFiles($files, $countTests);
     $printer = new PHPLOC_TextUI_ResultPrinter_Text();
     $printer->printResult($count, $countTests);
     if ($logXml) {
         $printer = new PHPLOC_TextUI_ResultPrinter_XML();
         $printer->printResult($logXml, $count);
     }
     if ($logCsv) {
         $printer = new PHPLOC_TextUI_ResultPrinter_CSV();
         $printer->printResult($logCsv, $count);
     }
 }
Beispiel #3
0
 /**
  * Run the generator.
  * Process the given options and generate a PersistentObject definition from it.
  * 
  * @return void
  */
 public function run()
 {
     try {
         $this->input->process();
     } catch (ezcConsoleException $e) {
         $this->raiseError("Error while processing your options: {$e->getMessage()}", true);
     }
     if ($this->input->getOption('h')->value === true) {
         $this->output->outputText($this->input->getHelpText(ezcPersistentObjectSchemaGenerator::PROGRAM_DESCRIPTION, 80, true), "help");
         exit(0);
     }
     $defDir = $this->input->argumentDefinition["def dir"]->value;
     $classDir = $this->input->argumentDefinition["class dir"]->value;
     try {
         $schema = $this->getSchema($this->input->getOption("format")->value, $this->input->getOption("source")->value);
     } catch (Exception $e) {
         $this->raiseError("Error reading schema: {$e->getMessage()}");
     }
     try {
         $this->writeConfigFiles($defDir, $schema);
         if ($classDir !== null) {
             $this->writeClassFiles($classDir, $schema);
         }
     } catch (Exception $e) {
         $this->raiseError("Error writing schema: {$e->getMessage()}");
     }
     $this->output->outputLine("PersistentObject definition successfully written to {$defDir}.", 'info');
     if ($classDir !== null) {
         $this->output->outputLine("Class files successfully written to {$classDir}.", 'info');
     }
 }
 /**
  * Main method.
  */
 public function main()
 {
     $input = new ezcConsoleInput();
     $output = new ezcConsoleOutput();
     $input->registerOption(new ezcConsoleOption('', 'exclude', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'recursive', ezcConsoleInput::TYPE_NONE));
     $input->registerOption(new ezcConsoleOption('', 'suffixes', ezcConsoleInput::TYPE_STRING, 'php', FALSE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'verbose', ezcConsoleInput::TYPE_NONE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         $this->showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             $this->printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     if (empty($arguments)) {
         $this->showHelp();
         exit(1);
     }
     $excludes = $input->getOption('exclude')->value;
     $recursive = $input->getOption('recursive')->value;
     $suffixes = explode(',', $input->getOption('suffixes')->value);
     array_map('trim', $suffixes);
     if ($input->getOption('verbose')->value !== FALSE) {
         $verbose = $output;
     } else {
         $verbose = NULL;
     }
     $this->printVersionString();
     $files = $this->findFiles($arguments, $excludes, $suffixes);
     if (empty($files)) {
         $this->showError("No files found to scan.\n");
     }
     $detector = new PHPDCD_Detector($verbose);
     $result = $detector->detectDeadCode($files, $recursive);
     $printer = new PHPDCD_TextUI_ResultPrinter();
     $printer->printResult($result, $commonPath);
     unset($printer);
 }
Beispiel #5
0
 /**
  * Main method.
  */
 public static function main()
 {
     $input = new ezcConsoleInput();
     $input->registerOption(new ezcConsoleOption('', 'bootstrap', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'class', ezcConsoleInput::TYPE_NONE));
     $input->registerOption(new ezcConsoleOption('', 'test', ezcConsoleInput::TYPE_NONE));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     $bootstrap = $input->getOption('bootstrap')->value;
     $class = $input->getOption('class')->value;
     $test = $input->getOption('test')->value;
     if (empty($arguments) || !$class && !$test || $class && $test) {
         self::showHelp();
         exit(1);
     }
     if ($class) {
         $reflector = new ReflectionClass('PHPUnit_SkeletonGenerator_Class');
     } else {
         if ($test) {
             $reflector = new ReflectionClass('PHPUnit_SkeletonGenerator_Test');
         }
     }
     self::printVersionString();
     if ($bootstrap && file_exists($bootstrap)) {
         include $bootstrap;
     }
     $generator = $reflector->newInstanceArgs($arguments);
     $generator->write();
     printf('Wrote skeleton for "%s" to "%s".' . "\n", $generator->getOutClassName(), $generator->getOutSourceFile());
     exit(0);
 }
Beispiel #6
0
 /**
  * Run the generator.
  * Process the given options and generate a PersistentObject definition from it.
  * 
  * @return void
  */
 public function run()
 {
     try {
         $this->input->process();
     } catch (ezcConsoleException $e) {
         $this->raiseError("Error while processing your options: {$e->getMessage()}", true);
     }
     if ($this->input->getOption('h')->value === true) {
         $this->output->outputText($this->input->getHelpText(ezcPersistentObjectSchemaGenerator::PROGRAM_DESCRIPTION, 80, true), "help");
         exit(0);
     }
     $defDir = $this->input->argumentDefinition["def dir"]->value;
     $classDir = $this->input->argumentDefinition["class dir"]->value;
     $schema = null;
     try {
         $readerClass = ezcDbSchemaHandlerManager::getReaderByFormat($this->input->getOption("format")->value);
         $reader = new $readerClass();
         switch (true) {
             case $reader instanceof ezcDbSchemaDbReader:
                 $db = ezcDbFactory::create($this->input->getOption("source")->value);
                 $schema = ezcDbSchema::createFromDb($db);
                 break;
             case $reader instanceof ezcDbSchemaFileReader:
                 $schema = ezcDbSchema::createFromFile($this->input->getOption("format")->value, $this->input->getOption("source")->value);
                 break;
             default:
                 $this->raiseError("Reader class not supported: '{$readerClass}'.");
                 break;
         }
     } catch (Exception $e) {
         $this->raiseError("Error reading schema: {$e->getMessage()}");
     }
     try {
         $writer = new ezcDbSchemaPersistentWriter($this->input->getOption("overwrite")->value, $this->input->getOption("prefix")->value);
         $writer->saveToFile($defDir, $schema);
         if ($classDir !== null) {
             $writer = new ezcDbSchemaPersistentClassWriter($this->input->getOption("overwrite")->value, $this->input->getOption("prefix")->value);
             $writer->saveToFile($classDir, $schema);
         }
     } catch (ezcBaseException $e) {
         $this->raiseError("Error writing schema: {$e->getMessage()}");
     }
     $this->output->outputLine("PersistentObject definition successfully written to {$defDir}.", 'info');
     if ($classDir !== null) {
         $this->output->outputLine("Class files successfully written to {$classDir}.", 'info');
     }
 }
Beispiel #7
0
 /**
  * starts the command line interface for pFlow
  * @return void
  */
 public function run()
 {
     $this->setupInput();
     try {
         $this->input->process();
     } catch (\ezcConsoleOptionException $e) {
         die($e->getMessage() . "\nTry option -h to get a list of available options.\n");
     } catch (\ezcConsoleArgumentMandatoryViolationException $e) {
         die($e->getMessage() . "\nTry option -h to get a list of available options.\n");
     }
     if ($this->input->helpOptionSet()) {
         echo $this->input->getHelpText("\npFlow version " . self::VERSION . "\n\n" . "A tool for analysing control and data flow in PHP applications.");
     } else {
         // start generation
         $this->analyzer->setSources($this->input->getArguments(), $this->input->getOption('recursive')->value);
     }
 }
Beispiel #8
0
 /**
  * Main method.
  */
 public static function main()
 {
     $input = new ezcConsoleInput();
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     if (empty($arguments)) {
         self::showHelp();
         exit(1);
     }
     self::printVersionString();
     print "Line   Token                          Text\n" . str_repeat('-', 79) . "\n";
     foreach (new PHP_Token_Stream($arguments[0]) as $token) {
         if ($token instanceof PHP_Token_WHITESPACE) {
             $text = '';
         } else {
             $text = str_replace(array("\r", "\n"), '', (string) $token);
             if (strlen($text) > 40) {
                 $text = explode("\n", wordwrap($text, 40));
                 $text = $text[0];
             }
         }
         printf("%5d  %-30s %s\n", $token->getLine(), str_replace('PHP_Token_', '', get_class($token)), $text);
     }
 }
Beispiel #9
0
 /**
  * Main method.
  */
 public function main()
 {
     $input = new \ezcConsoleInput();
     $input->registerOption(new \ezcConsoleOption('', 'exclude', \ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new \ezcConsoleOption('h', 'help', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new \ezcConsoleOption('', 'log-pmd', \ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new \ezcConsoleOption('', 'min-lines', \ezcConsoleInput::TYPE_INT, 5));
     $input->registerOption(new \ezcConsoleOption('', 'min-tokens', \ezcConsoleInput::TYPE_INT, 70));
     $input->registerOption(new \ezcConsoleOption('', 'names', \ezcConsoleInput::TYPE_STRING, '*.php', FALSE));
     $input->registerOption(new \ezcConsoleOption('', 'quiet', \ezcConsoleInput::TYPE_NONE, NULL, FALSE));
     $input->registerOption(new \ezcConsoleOption('v', 'version', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new \ezcConsoleOption('', 'progress', \ezcConsoleInput::TYPE_NONE));
     $input->registerOption(new \ezcConsoleOption('', 'verbose', \ezcConsoleInput::TYPE_NONE));
     try {
         $input->process();
     } catch (\ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         $this->showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             $this->printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     if (empty($arguments)) {
         $this->showHelp();
         exit(1);
     }
     $excludes = $input->getOption('exclude')->value;
     $logPmd = $input->getOption('log-pmd')->value;
     $minLines = $input->getOption('min-lines')->value;
     $minTokens = $input->getOption('min-tokens')->value;
     $names = explode(',', $input->getOption('names')->value);
     $quiet = $input->getOption('quiet')->value;
     $verbose = $input->getOption('verbose')->value;
     array_map('trim', $names);
     if ($input->getOption('progress')->value !== FALSE) {
         $output = new \ezcConsoleOutput();
     } else {
         $output = NULL;
     }
     $this->printVersionString();
     $finder = new FinderFacade($arguments, $excludes, $names);
     $files = $finder->findFiles();
     if (empty($files)) {
         $this->showError("No files found to scan.\n");
     }
     $strategy = new DefaultStrategy();
     $detector = new Detector($strategy, $output);
     $clones = $detector->copyPasteDetection($files, $minLines, $minTokens);
     $printer = new ResultPrinter();
     $printer->printResult($clones, !$quiet, $verbose);
     unset($printer);
     if ($logPmd) {
         $pmd = new PMD($logPmd);
         $pmd->processClones($clones);
         unset($pmd);
     }
     if (count($clones) > 0) {
         exit(1);
     }
 }
Beispiel #10
0
 /**
  * Main function. Sets up the environment and coordinate the work.
  *
  * @return void
  */
 public static function run()
 {
     // Set autoload up
     require_once 'VcsStats/Loader.php';
     spl_autoload_register(array('VcsStats_Loader', 'autoload'));
     require_once 'ezc/Base/base.php';
     spl_autoload_register(array('ezcBase', 'autoload'));
     // Set console output up
     $output = new ezcConsoleOutput();
     $output->formats->version->style = array('bold');
     $output->formats->debug->color = 'yellow';
     $output->formats->debug->style = array('italic');
     $output->formats->error->color = 'red';
     self::$consoleOutput = $output;
     // Set console input up
     $input = new ezcConsoleInput();
     self::$consoleInput = $input;
     $debugOption = new ezcConsoleOption('d', 'debug');
     $debugOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($debugOption);
     $helpOption = new ezcConsoleOption('h', 'help');
     $helpOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($helpOption);
     $revisionsOption = new ezcConsoleOption('r', 'revisions');
     $revisionsOption->type = ezcConsoleInput::TYPE_STRING;
     $input->registerOption($revisionsOption);
     $verboseOption = new ezcConsoleOption('v', 'verbose');
     $verboseOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($verboseOption);
     $versionOption = new ezcConsoleOption(null, 'version');
     $versionOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($versionOption);
     // Process console input
     try {
         $input->process();
     } catch (ezcConsoleOptionException $exception) {
         echo $exception->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::displayHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::displayVersion();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     if (1 !== count($arguments)) {
         self::displayError('Path to repository is missing', 'error');
         exit(1);
     }
     $repositoryPath = $arguments[0];
     // Do the actual work
     self::displayVersion();
     try {
         $options = array('path' => $repositoryPath);
         $wrapper = new VcsStats_Wrapper_Subversion($options);
         $cachePath = realpath(dirname(__FILE__) . '/../../tmp');
         $cache = new VcsStats_Cache($wrapper, $cachePath);
         $revisionsRange = self::_extractRevisionsRange($input->getOption('revisions')->value);
         $cache->updateData($revisionsRange['end']);
         $analyzer = new VcsStats_Analyzer($cache);
         $report = $analyzer->getReport($revisionsRange['start'], $revisionsRange['end']);
         $renderer = new VcsStats_Renderer_Text();
         $renderer->render($report);
     } catch (Exception $exception) {
         self::displayError($exception->getMessage());
         exit(1);
     }
 }
Beispiel #11
0
 /**
  * Run the generator.
  * Process the given options and generates translation files.
  */
 public function run()
 {
     try {
         $this->input->process();
     } catch (ezcConsoleException $e) {
         $this->raiseError("Error while processing your options: {$e->getMessage()}", true);
     }
     if ($this->input->getOption('h')->value === true) {
         $this->output->outputText($this->input->getHelpText(self::PROGRAM_DESCRIPTION, 80, true), "help");
         exit(0);
     }
     $translationDir = $this->input->argumentDefinition["translation dir"]->value;
     $templatePath = realpath($this->input->getOption("templates")->value);
     // setup the backend to write to and/or read from
     $options = array('format' => $this->input->getOption("format")->value, 'keepObsolete' => true);
     $this->backend = new ezcTranslationTsBackend($translationDir);
     $this->backend->setOptions($options);
     $locale = $this->input->getOption("locale")->value;
     // remove the translation file if option overwrite is set
     $translationFile = $this->backend->buildTranslationFileName($locale);
     if ($this->input->getOption("overwrite")->value === true && file_exists($translationFile)) {
         unlink($translationFile);
     }
     // init the writer
     $this->backend->initWriter($locale);
     // keep track of which contexts are in use
     $usedContexts = array();
     // find the .ezt files and loop over them.
     $it = ezcBaseFile::findRecursive($templatePath, array('@\\.ezt$@'));
     foreach ($it as $item) {
         $pathname = $this->unifyFilepath(realpath($item), $templatePath);
         $this->output->outputLine('Processing file ' . $pathname . ' ...');
         // get translation contexts from template
         $contexts = $this->getTranslationsFromTemplate($item);
         foreach ($contexts as $contextName => $translationMapNew) {
             // record that this context is in use
             $usedContexts[] = $contextName;
             // get existing translation strings from file
             if ($this->input->getOption("overwrite")->value === false) {
                 $translationMapOriginal = $this->getTranslationsFromTsFile($contextName);
             } else {
                 $translationMapOriginal = array();
             }
             // create empty context
             $context = array();
             // insert new translations
             foreach ($translationMapNew as $original => $translationElement) {
                 // insert new strings
                 if (!isset($translationMapOriginal[$original])) {
                     // edit filename to unify accross platforms and strip template path
                     $translationElement->filename = $this->unifyFilepath($translationElement->filename, $templatePath);
                     $context[] = $translationElement;
                 }
             }
             // update translations
             if ($this->input->getOption("overwrite")->value === false) {
                 foreach ($translationMapOriginal as $original => $translationElement) {
                     // update data
                     if (isset($translationMapNew[$original])) {
                         $new = $translationMapNew[$original];
                         $translationElement->comment = $new->comment;
                         $translationElement->filename = $this->unifyFilepath($new->filename, $templatePath);
                         $translationElement->line = $new->line;
                         $translationElement->column = $new->column;
                         // change status of previously obsolete strings
                         if ($translationElement->status == ezcTranslationData::OBSOLETE) {
                             if (!empty($translationElement->translation)) {
                                 $translationElement->status = ezcTranslationData::TRANSLATED;
                             } else {
                                 $translationElement->status = ezcTranslationData::UNFINISHED;
                             }
                         }
                         $context[] = $translationElement;
                     } elseif ($translationElement->filename == $pathname) {
                         $translationElement->status = ezcTranslationData::OBSOLETE;
                         $context[] = $translationElement;
                     }
                 }
             }
             $this->backend->storeContext($contextName, $context);
         }
     }
     // write translation data to file
     $this->backend->deinitWriter();
     $contextNames = $this->backend->getContextNames($locale);
     // init the writer
     $this->backend->initWriter($locale);
     // check which contexts are now totally gone
     foreach ($contextNames as $contextName) {
         if (!in_array($contextName, $usedContexts)) {
             echo "{$contextName} is all obsolete\n";
             $context = $this->backend->getContext($locale, $contextName);
             foreach ($context as &$translationElement) {
                 $translationElement->status = ezcTranslationData::OBSOLETE;
             }
             $this->backend->storeContext($contextName, $context);
         }
     }
     // write translation data to file
     $this->backend->deinitWriter();
     $this->output->outputLine();
     $this->output->outputLine("Translation file for locale '{$locale}' successfully written to '{$translationDir}'.", 'info');
 }
 /**
  * Main method.
  */
 public function main()
 {
     $input = new ezcConsoleInput();
     $input->registerOption(new ezcConsoleOption('', 'eliminate-dead-code', ezcConsoleInput::TYPE_NONE));
     $input->registerOption(new ezcConsoleOption('', 'exclude', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('', 'format', ezcConsoleInput::TYPE_STRING, 'dot', FALSE));
     $input->registerOption(new ezcConsoleOption('', 'graph', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'log-pmd', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'rule', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('', 'suffixes', ezcConsoleInput::TYPE_STRING, 'php', FALSE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         $this->showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             $this->printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     if (empty($arguments)) {
         $this->showHelp();
         exit(1);
     }
     $eliminateDeadCode = $input->getOption('eliminate-dead-code')->value;
     $excludes = $input->getOption('exclude')->value;
     $format = $input->getOption('format')->value;
     $graph = $input->getOption('graph')->value;
     $logPmd = $input->getOption('log-pmd')->value;
     $_rules = $input->getOption('rule')->value;
     $suffixes = explode(',', $input->getOption('suffixes')->value);
     array_map('trim', $suffixes);
     $rules = array();
     foreach ($_rules as $rule) {
         $ruleOptions = '';
         if (strpos($rule, ':') !== FALSE) {
             list($rule, $ruleOptions) = explode(':', $rule);
         }
         switch ($rule) {
             case 'DirectOutput':
                 $rules[] = new Bytekit_Scanner_Rule_DirectOutput();
                 break;
             case 'DisallowedOpcodes':
                 $disallowedOpcodes = explode(',', $ruleOptions);
                 array_map('trim', $disallowedOpcodes);
                 $rules[] = new Bytekit_Scanner_Rule_DisallowedOpcodes($disallowedOpcodes);
                 break;
             case 'Output':
                 $rules[] = new Bytekit_Scanner_Rule_Output();
                 break;
             case 'ZendView':
                 $rules[] = new Bytekit_Scanner_Rule_ZendView();
                 break;
         }
     }
     $files = $this->findFiles($arguments, $excludes, $suffixes);
     if (empty($files)) {
         $this->showError("No files found to scan.\n");
     }
     $this->printVersionString();
     if (!empty($rules)) {
         $scanner = new Bytekit_Scanner($rules);
         $result = $scanner->scan($files);
         $formatter = new Bytekit_TextUI_ResultFormatter_Scanner_Text();
         print $formatter->formatResult($result);
         if ($logPmd) {
             $formatter = new Bytekit_TextUI_ResultFormatter_Scanner_XML();
             file_put_contents($logPmd, $formatter->formatResult($result));
         }
         if (!empty($result)) {
             exit(1);
         }
         exit(0);
     }
     if (count($files) == 1) {
         $disassembler = new Bytekit_Disassembler($files[0]);
         if ($graph) {
             $result = $disassembler->disassemble(FALSE, $eliminateDeadCode);
             $formatter = new Bytekit_TextUI_ResultFormatter_Disassembler_Graph();
             $formatter->formatResult($result, $graph, $format);
         } else {
             $result = $disassembler->disassemble(TRUE, $eliminateDeadCode);
             $formatter = new Bytekit_TextUI_ResultFormatter_Disassembler_Text();
             print $formatter->formatResult($result);
         }
         exit(0);
     }
 }
Beispiel #13
0
 /**
  * Main function. Sets up the environment and coordinate the work.
  *
  * @return void
  */
 public static function run()
 {
     // Set autoload up
     require_once 'PHP/ConfigReport/Loader.php';
     spl_autoload_register(array('PHP_ConfigReport_Loader', 'autoload'));
     require_once 'ezc/Base/base.php';
     spl_autoload_register(array('ezcBase', 'autoload'));
     // Set console output up
     $output = new ezcConsoleOutput();
     $output->formats->version->style = array('bold');
     $output->formats->debug->color = 'yellow';
     $output->formats->debug->style = array('italic');
     $output->formats->error->color = 'red';
     self::$_consoleOutput = $output;
     // Set console input up
     $input = new ezcConsoleInput();
     self::$_consoleInput = $input;
     $debugOption = new ezcConsoleOption('d', 'debug');
     $debugOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($debugOption);
     $environmentOption = new ezcConsoleOption('e', 'environment');
     $environmentOption->type = ezcConsoleInput::TYPE_STRING;
     $environmentOption->default = 'production';
     $input->registerOption($environmentOption);
     $helpOption = new ezcConsoleOption('h', 'help');
     $helpOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($helpOption);
     $phpDirectiveOption = new ezcConsoleOption('p', 'php');
     $phpDirectiveOption->type = ezcConsoleInput::TYPE_STRING;
     $phpDirectiveOption->multiple = true;
     $input->registerOption($phpDirectiveOption);
     $phpVersionOption = new ezcConsoleOption(null, 'php-version');
     $phpVersionOption->type = ezcConsoleInput::TYPE_STRING;
     $input->registerOption($phpVersionOption);
     $verboseOption = new ezcConsoleOption('v', 'verbose');
     $verboseOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($verboseOption);
     $loadedExtensionsOption = new ezcConsoleOption('x', 'extensions');
     $loadedExtensionsOption->type = ezcConsoleInput::TYPE_STRING;
     $input->registerOption($loadedExtensionsOption);
     $widthOption = new ezcConsoleOption(null, 'width');
     $widthOption->type = ezcConsoleInput::TYPE_INT;
     $input->registerOption($widthOption);
     $versionOption = new ezcConsoleOption(null, 'version');
     $versionOption->type = ezcConsoleInput::TYPE_NONE;
     $input->registerOption($versionOption);
     // Process console input
     try {
         $input->process();
     } catch (ezcConsoleOptionException $exception) {
         echo $exception->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::displayHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::displayVersion();
             exit(0);
         }
     }
     self::displayVersion();
     if (false !== $input->getOption('php')->value) {
         foreach ($input->getOption('php')->value as $directive) {
             $position = strpos($directive, '=');
             if (false === $position) {
                 throw new InvalidArgumentException("'{$directive}' is not a valid PHP configuration " . "directive");
             }
             $name = substr($directive, 0, $position);
             $value = substr($directive, $position + 1);
             if (false === ini_set($name, $value)) {
                 self::displayError("PHP directive {$name} could not be defined to {$value}");
             }
         }
         unset($name, $value);
     }
     // Do the actual work
     try {
         $arguments = $input->getArguments();
         $path = !empty($arguments[0]) ? $arguments[0] : null;
         $config = new PHP_ConfigReport_Config($path);
         if (false === $input->getOption('environment')->value) {
             $environment = null;
         } else {
             $environment = $input->getOption('environment')->value;
         }
         if (false === $input->getOption('extensions')->value) {
             $loadedExtensions = get_loaded_extensions(true);
         } else {
             $loadedExtensions = $input->getOption('extensions')->value;
         }
         if (false === $input->getOption('php-version')->value) {
             $phpVersion = PHP_VERSION;
         } else {
             $phpVersion = $input->getOption('php-version')->value;
         }
         $analyzer = new PHP_ConfigReport_Analyzer($config, $environment, $phpVersion, $loadedExtensions);
         $report = $analyzer->getReport();
         if (false !== $input->getOption('width')->value) {
             $reportWidth = $input->getOption('width')->value;
         } else {
             $reportWidth = null;
         }
         $renderer = new PHP_ConfigReport_Renderer_Text($reportWidth);
         $renderer->render($report);
     } catch (Exception $exception) {
         self::displayError($exception->getMessage());
         exit(1);
     }
 }
Beispiel #14
0
 /**
  * Main method.
  */
 public static function main()
 {
     $input = new ezcConsoleInput();
     $input->registerOption(new ezcConsoleOption('', 'clover', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'html', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'blacklist', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('', 'whitelist', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('', 'merge', ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     $clover = $input->getOption('clover')->value;
     $html = $input->getOption('html')->value;
     $blacklist = $input->getOption('blacklist')->value;
     $whitelist = $input->getOption('whitelist')->value;
     $merge = $input->getOption('merge')->value;
     if (count($arguments) == 1) {
         self::printVersionString();
         $coverage = new PHP_CodeCoverage();
         $filter = $coverage->filter();
         if (empty($whitelist)) {
             $c = new ReflectionClass('ezcBase');
             $filter->addDirectoryToBlacklist(dirname($c->getFileName()));
             $c = new ReflectionClass('ezcConsoleInput');
             $filter->addDirectoryToBlacklist(dirname($c->getFileName()));
             foreach ($blacklist as $item) {
                 if (is_dir($item)) {
                     $filter->addDirectoryToBlacklist($item);
                 } else {
                     if (is_file($item)) {
                         $filter->addFileToBlacklist($item);
                     }
                 }
             }
         } else {
             foreach ($whitelist as $item) {
                 if (is_dir($item)) {
                     $filter->addDirectoryToWhitelist($item);
                 } else {
                     if (is_file($item)) {
                         $filter->addFileToWhitelist($item);
                     }
                 }
             }
         }
         if (!$merge) {
             $coverage->start('phpcov');
             require $arguments[0];
             $coverage->stop();
         } else {
             $facade = new File_Iterator_Facade();
             $result = $facade->getFilesAsArray($arguments[0], '.cov');
             foreach ($files as $file) {
                 $coverage->merge(unserialize(file_get_contents($file)));
             }
         }
         if ($clover) {
             $writer = new PHP_CodeCoverage_Report_Clover();
             $writer->process($coverage, $clover);
         }
         if ($html) {
             $writer = new PHP_CodeCoverage_Report_HTML();
             $writer->process($coverage, $html);
         }
     } else {
         self::showHelp();
         exit(1);
     }
 }
<?php

require 'ezc-setup.php';
$optionHandler = new ezcConsoleInput();
$file = new ezcConsoleOption('f', 'file', ezcConsoleInput::TYPE_STRING);
$file->mandatory = true;
$optionHandler->registerOption($file);
try {
    $optionHandler->process();
} catch (ezcConsoleException $e) {
    die($e->getMessage());
}
echo "Processing file: ", $optionHandler->getOption('f')->value, "\n";
Beispiel #16
0
 /**
  * Helper to register and process supported CLI options into an ezcConsoleInput
  *
  * @throws CLIOptionsException
  * @return CLIOptions
  */
 protected function processOptions()
 {
     $input = new \ezcConsoleInput();
     $versionOption = $input->registerOption(new \ezcConsoleOption('v', 'version'));
     $versionOption->shorthelp = 'Prints the version and exits';
     $versionOption->isHelpOption = TRUE;
     $helpOption = $input->registerOption(new \ezcConsoleOption('h', 'help'));
     $helpOption->isHelpOption = TRUE;
     $helpOption->shorthelp = 'Prints this usage information';
     $input->registerOption(new \ezcConsoleOption('f', 'file', \ezcConsoleInput::TYPE_STRING, NULL, FALSE, 'Configuration file to load'));
     $c = $input->registerOption(new \ezcConsoleOption('c', 'collector', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Run collector process only'));
     $g = $input->registerOption(new \ezcConsoleOption('g', 'generator', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Run generator process only'));
     $g->addExclusion(new \ezcConsoleOptionRule($c));
     $c->addExclusion(new \ezcConsoleOptionRule($g));
     $input->registerOption(new \ezcConsoleOption(NULL, 'engines', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Show a list of available engines and exit'));
     $input->registerOption(new \ezcConsoleOption(NULL, 'enrichers', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Show a list of available enrichers and exit'));
     $input->registerOption(new \ezcConsoleOption(NULL, 'backends', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Show a list of available backends and exit'));
     $skel = $input->registerOption(new \ezcConsoleOption(NULL, 'skel', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Show a skeleton config xml file and exit'));
     $strip = $input->registerOption(new \ezcConsoleOption(NULL, 'strip', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, 'Strip xml config when showing'));
     $strip->addDependency(new \ezcConsoleOptionRule($skel));
     try {
         $input->process();
         return new CLIOptions($input);
     } catch (\ezcConsoleException $e) {
         throw new CLIOptionsException($e->getMessage(), $e->getCode());
     }
 }
Beispiel #17
0
 /**
  * Processes all console options
  *
  * If the help option is specified by the user the help text will be
  * displayed and the program will exit.
  *
  * @param ezcConsoleInput $consoleInput
  */
 protected static function processConsoleArguments($consoleInput)
 {
     try {
         $consoleInput->process();
     } catch (ezcConsoleOptionException $e) {
         die($e->getMessage() . "\n");
     }
     if ($consoleInput->getOption("help")->value) {
         self::displayHelp(self::$consoleInput);
         exit;
     }
     if ($consoleInput->getOption('php-binary')->value) {
         self::$phpBinary = $consoleInput->getOption('php-binary')->value;
     }
 }
Beispiel #18
0
$excludeDirsOption->mandatory = false;
$excludeDirsOption->shorthelp = "Folders to exclude from the class search.";
$params->registerOption($excludeDirsOption);
$displayProgressOption = new ezcConsoleOption('p', 'progress', ezcConsoleInput::TYPE_NONE);
$displayProgressOption->mandatory = false;
$displayProgressOption->shorthelp = "If progress output should be shown on the command-line.";
$params->registerOption($displayProgressOption);
// Add an argument for which extension to search
$params->argumentDefinition = new ezcConsoleArguments();
$params->argumentDefinition[0] = new ezcConsoleArgument('extension');
$params->argumentDefinition[0]->mandatory = false;
$params->argumentDefinition[0]->shorthelp = "Extension to generate autoload files for.";
$params->argumentDefinition[0]->default = getcwd();
// Process console parameters
try {
    $params->process();
} catch (ezcConsoleOptionException $e) {
    print $e->getMessage() . "\n";
    print "\n";
    echo $params->getHelpText('Autoload file generator.') . "\n";
    echo "\n";
    exit;
}
if ($helpOption->value === true) {
    echo $params->getHelpText('Autoload file generator.') . "\n";
    exit;
}
//}
if ($excludeDirsOption->value !== false) {
    $excludeDirs = explode(',', $excludeDirsOption->value);
} else {
Beispiel #19
0
$in = new ezcConsoleInput();
$helpOpt = $in->registerOption(new ezcConsoleOption('h', 'help'));
$helpOpt->isHelpOption = true;
$helpOpt->shorthelp = 'Print help information.';
$helpOpt->longhelp = 'Display this help information about the program.';
$suiteOpt = $in->registerOption(new ezcConsoleOption('s', 'suite', ezcConsoleInput::TYPE_STRING, '*'));
$suiteOpt->shorthelp = 'Path pattern defining the client test suites to display data for.';
$suiteOpt->longhelp = 'This option may contain a path pattern as understood by glob(), defining the client test suites to display data for. An example would be "rfc" to only see the rfc tests or "r*" to see all suites starting with "r".';
$testOpt = $in->registerOption(new ezcConsoleOption('t', 'test', ezcConsoleInput::TYPE_STRING, '*'));
$testOpt->shorthelp = 'Path pattern defining the test cases to display data for.';
$testOpt->longhelp = 'This option may contain a path pattern as understood by glob(), defining the test cases to display data for. An example would be "get_*" to only see all test cases that start with "get_".';
$noColorOpt = $in->registerOption(new ezcConsoleOption('n', 'no-color'));
$noColorOpt->shorthelp = 'Switch of use of format codes (for logging).';
$noColorOpt->longhelp = 'Switches of the use of shell formatting codes, like color and style. This is particularly useful if you want to log the generated output.';
try {
    $in->process();
} catch (ezcConsoleException $e) {
    $out->outputLine($e->getMessage(), 'error');
    $out->outputLine($in->getHelpText('Webdav client test viewer'), 'error');
    exit(-1);
}
if ($helpOpt->value === true) {
    $out->outputLine($in->getHelpText('Webdav client test viewer', 80, true));
    exit(0);
}
if ($noColorOpt->value === true) {
    $out->options->useFormats = false;
}
$suites = glob(dirname(__FILE__) . "/../clients/{$suiteOpt->value}", GLOB_ONLYDIR);
foreach ($suites as $suite) {
    $tests = glob("{$suite}/{$testOpt->value}", GLOB_ONLYDIR);
Beispiel #20
0
$optionHandler = new ezcConsoleInput();
// Register simple parameter -h/--help
$optionHandler->registerOption(new ezcConsoleOption('h', 'help'));
// Register complex parameter -f/--file
$file = new ezcConsoleOption('f', 'file', ezcConsoleInput::TYPE_STRING, null, false, 'Process a file.', 'Processes a single file.');
$optionHandler->registerOption($file);
// Manipulate parameter -f/--file after registration
$file->multiple = true;
// Register another complex parameter that depends on -f and excludes -h
$dir = new ezcConsoleOption('d', 'dir', ezcConsoleInput::TYPE_STRING, null, true, 'Process a directory.', 'Processes a complete directory.', array(new ezcConsoleOptionRule($optionHandler->getOption('f'))), array(new ezcConsoleOptionRule($optionHandler->getOption('h'))));
$optionHandler->registerOption($dir);
// Register an alias for this parameter
$optionHandler->registerAlias('e', 'extended-dir', $dir);
// Process registered parameters and handle errors
try {
    $optionHandler->process(array('example_input.php', '-h'));
} catch (ezcConsoleOptionException $e) {
    echo $e->getMessage();
    exit(1);
}
// Process a single parameter
$file = $optionHandler->getOption('f');
if ($file->value === false) {
    echo "Parameter -{$file->short}/--{$file->long} was not submitted.\n";
} elseif ($file->value === true) {
    echo "Parameter -{$file->short}/--{$file->long} was submitted without value.\n";
} else {
    echo "Parameter -{$file->short}/--{$file->long} was submitted with value <" . var_export($file->value, true) . ">.\n";
}
// Process all parameters at once:
foreach ($optionHandler->getOptionValues() as $paramShort => $val) {
Beispiel #21
0
 /**
  * Main method.
  */
 public static function main()
 {
     $input = new ezcConsoleInput();
     $input->registerOption(new ezcConsoleOption('', 'clover', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'html', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'php', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'text', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'blacklist', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('', 'whitelist', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('', 'merge', ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new ezcConsoleOption('', 'add-uncovered', ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new ezcConsoleOption('', 'process-uncovered', ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     $clover = $input->getOption('clover')->value;
     $html = $input->getOption('html')->value;
     $php = $input->getOption('php')->value;
     $text = $input->getOption('text')->value;
     $blacklist = $input->getOption('blacklist')->value;
     $whitelist = $input->getOption('whitelist')->value;
     $addUncovered = $input->getOption('add-uncovered')->value;
     $processUncovered = $input->getOption('process-uncovered')->value;
     $merge = $input->getOption('merge')->value;
     if (count($arguments) == 1) {
         self::printVersionString();
         $coverage = new PHP_CodeCoverage();
         $filter = $coverage->filter();
         if (empty($whitelist)) {
             $c = new ReflectionClass('ezcBase');
             $filter->addDirectoryToBlacklist(dirname($c->getFileName()));
             $c = new ReflectionClass('ezcConsoleInput');
             $filter->addDirectoryToBlacklist(dirname($c->getFileName()));
             foreach ($blacklist as $item) {
                 if (is_dir($item)) {
                     $filter->addDirectoryToBlacklist($item);
                 } else {
                     if (is_file($item)) {
                         $filter->addFileToBlacklist($item);
                     }
                 }
             }
         } else {
             $coverage->setAddUncoveredFilesFromWhitelist($addUncovered);
             $coverage->setProcessUncoveredFilesFromWhitelist($processUncovered);
             foreach ($whitelist as $item) {
                 if (is_dir($item)) {
                     $filter->addDirectoryToWhitelist($item);
                 } else {
                     if (is_file($item)) {
                         $filter->addFileToWhitelist($item);
                     }
                 }
             }
         }
         if (!$merge) {
             $coverage->start('phpcov');
             require $arguments[0];
             $coverage->stop();
         } else {
             $finder = new Symfony\Component\Finder\Finder();
             $finder->in($arguments[0])->name('*.cov');
             foreach ($finder as $file) {
                 $coverage->merge(unserialize(file_get_contents($file->getRealpath())));
             }
         }
         if ($clover) {
             $writer = new PHP_CodeCoverage_Report_Clover();
             $writer->process($coverage, $clover);
         }
         if ($html) {
             $writer = new PHP_CodeCoverage_Report_HTML();
             $writer->process($coverage, $html);
         }
         if ($php) {
             $writer = new PHP_CodeCoverage_Report_PHP();
             $writer->process($coverage, $php);
         }
         if ($text) {
             $writer = new PHP_CodeCoverage_Report_Text();
             $writer->process($coverage, $text);
         }
     } else {
         self::showHelp();
         exit(1);
     }
 }
Beispiel #22
0
 /**
  * Main method.
  */
 public function main()
 {
     $input = new \ezcConsoleInput();
     $input->registerOption(new \ezcConsoleOption('', 'clover', \ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new \ezcConsoleOption('', 'configuration', \ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new \ezcConsoleOption('', 'html', \ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new \ezcConsoleOption('', 'php', \ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new \ezcConsoleOption('', 'text', \ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new \ezcConsoleOption('', 'blacklist', \ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new \ezcConsoleOption('', 'whitelist', \ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new \ezcConsoleOption('', 'merge', \ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new \ezcConsoleOption('', 'add-uncovered', \ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new \ezcConsoleOption('', 'process-uncovered', \ezcConsoleInput::TYPE_NONE, FALSE));
     $input->registerOption(new \ezcConsoleOption('h', 'help', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new \ezcConsoleOption('v', 'version', \ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . "\n";
         exit(1);
     }
     if ($input->getOption('help')->value) {
         $this->showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             $this->printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     $clover = $input->getOption('clover')->value;
     $configuration = $input->getOption('configuration')->value;
     $html = $input->getOption('html')->value;
     $php = $input->getOption('php')->value;
     $text = $input->getOption('text')->value;
     $blacklist = $input->getOption('blacklist')->value;
     $whitelist = $input->getOption('whitelist')->value;
     $addUncovered = $input->getOption('add-uncovered')->value;
     $processUncovered = $input->getOption('process-uncovered')->value;
     $merge = $input->getOption('merge')->value;
     $coverage = new \PHP_CodeCoverage();
     $filter = $coverage->filter();
     if ($configuration) {
         $this->handleConfiguration($configuration, $coverage);
     }
     if (count($arguments) == 1) {
         $this->printVersionString();
         if (empty($whitelist)) {
             $c = new \ReflectionClass('ezcBase');
             $filter->addDirectoryToBlacklist(dirname($c->getFileName()));
             $c = new \ReflectionClass('ezcConsoleInput');
             $filter->addDirectoryToBlacklist(dirname($c->getFileName()));
             foreach ($blacklist as $item) {
                 if (is_dir($item)) {
                     $filter->addDirectoryToBlacklist($item);
                 } else {
                     if (is_file($item)) {
                         $filter->addFileToBlacklist($item);
                     }
                 }
             }
         } else {
             $coverage->setAddUncoveredFilesFromWhitelist($addUncovered);
             $coverage->setProcessUncoveredFilesFromWhitelist($processUncovered);
             foreach ($whitelist as $item) {
                 if (is_dir($item)) {
                     $filter->addDirectoryToWhitelist($item);
                 } else {
                     if (is_file($item)) {
                         $filter->addFileToWhitelist($item);
                     }
                 }
             }
         }
         if (!$merge) {
             $coverage->start('phpcov');
             require $arguments[0];
             $coverage->stop();
         } else {
             $facade = new \File_Iterator_Facade();
             $files = $facade->getFilesAsArray($arguments[0], '.cov');
             foreach ($files as $file) {
                 $coverage->merge(unserialize(file_get_contents($file)));
             }
         }
         if ($clover) {
             print "\nGenerating code coverage report in Clover XML format ...";
             $writer = new \PHP_CodeCoverage_Report_Clover();
             $writer->process($coverage, $clover);
             print " done\n";
         }
         if ($html) {
             print "\nGenerating code coverage report in HTML format ...";
             $writer = new \PHP_CodeCoverage_Report_HTML();
             $writer->process($coverage, $html);
             print " done\n";
         }
         if ($php) {
             print "\nGenerating code coverage report in PHP format ...";
             $writer = new \PHP_CodeCoverage_Report_PHP();
             $writer->process($coverage, $php);
             print " done\n";
         }
         if ($text) {
             $writer = new \PHP_CodeCoverage_Report_Text();
             $writer->process($coverage, $text);
         }
     } else {
         $this->showHelp();
         exit(1);
     }
 }
Beispiel #23
0
 /**
  * Main method.
  */
 public static function main()
 {
     $input = new ezcConsoleInput();
     $output = new ezcConsoleOutput();
     $input->registerOption(new ezcConsoleOption('', 'exclude', ezcConsoleInput::TYPE_STRING, array(), TRUE));
     $input->registerOption(new ezcConsoleOption('h', 'help', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'log-pmd', ezcConsoleInput::TYPE_STRING));
     $input->registerOption(new ezcConsoleOption('', 'min-lines', ezcConsoleInput::TYPE_INT, 5));
     $input->registerOption(new ezcConsoleOption('', 'min-tokens', ezcConsoleInput::TYPE_INT, 70));
     $input->registerOption(new ezcConsoleOption('', 'save-memory', ezcConsoleInput::TYPE_NONE, NULL, FALSE));
     $input->registerOption(new ezcConsoleOption('', 'suffixes', ezcConsoleInput::TYPE_STRING, 'php', FALSE));
     $input->registerOption(new ezcConsoleOption('', 'quiet', ezcConsoleInput::TYPE_NONE, NULL, FALSE));
     $input->registerOption(new ezcConsoleOption('v', 'version', ezcConsoleInput::TYPE_NONE, NULL, FALSE, '', '', array(), array(), FALSE, FALSE, TRUE));
     $input->registerOption(new ezcConsoleOption('', 'verbose', ezcConsoleInput::TYPE_NONE));
     try {
         $input->process();
     } catch (ezcConsoleOptionException $e) {
         print $e->getMessage() . PHP_EOL;
         exit(1);
     }
     if ($input->getOption('help')->value) {
         self::showHelp();
         exit(0);
     } else {
         if ($input->getOption('version')->value) {
             self::printVersionString();
             exit(0);
         }
     }
     $arguments = $input->getArguments();
     $exclude = $input->getOption('exclude')->value;
     if (is_array($exclude) && count($exclude) == 1) {
         array_map('trim', explode(',', array_pop($exclude)));
     }
     $logPmd = $input->getOption('log-pmd')->value;
     $minLines = $input->getOption('min-lines')->value;
     $minTokens = $input->getOption('min-tokens')->value;
     $saveMemory = $input->getOption('save-memory')->value;
     $suffixes = array_map('trim', explode(',', $input->getOption('suffixes')->value));
     $quiet = $input->getOption('quiet')->value;
     if ($input->getOption('verbose')->value !== FALSE) {
         $verbose = $output;
     } else {
         $verbose = NULL;
     }
     if (!empty($arguments)) {
         $facade = new File_Iterator_Facade();
         $result = $facade->getFilesAsArray($arguments, $suffixes, array(), $exclude, TRUE);
         $files = $result['files'];
         $commonPath = $result['commonPath'];
         unset($result);
     } else {
         self::showHelp();
         exit(1);
     }
     if (empty($files)) {
         self::showError('No files found to scan.' . PHP_EOL);
     }
     self::printVersionString();
     if (!$saveMemory) {
         $strategy = new PHPCPD_Detector_Strategy_Default();
     } else {
         $strategy = new PHPCPD_Detector_Strategy_SaveMemory();
     }
     $detector = new PHPCPD_Detector($strategy, $verbose);
     $clones = $detector->copyPasteDetection($files, $minLines, $minTokens);
     $printer = new PHPCPD_TextUI_ResultPrinter();
     $printer->printResult($clones, $commonPath, !$quiet);
     unset($printer);
     if ($logPmd) {
         $pmd = new PHPCPD_Log_XML_PMD($logPmd);
         $pmd->processClones($clones);
         unset($pmd);
     }
     if (count($clones) > 0) {
         exit(1);
     }
 }
Beispiel #24
0
ini_set('register_globals', 0);
ini_set('display_errors', 1);
ini_set("max_execution_time", "3600");
require_once dirname(__FILE__) . "/ezcomponents/Base/src/base.php";
function __autoload($className)
{
    ezcBase::autoload($className);
}
ezcBase::addClassRepository(dirname(__FILE__) . '/', dirname(__FILE__) . '/lib/autoloads');
$input = new ezcConsoleInput();
$helpOption = $input->registerOption(new ezcConsoleOption('s', 'siteaccess', ezcConsoleInput::TYPE_STRING));
$cronjobPartOption = $input->registerOption(new ezcConsoleOption('c', 'cronjob', ezcConsoleInput::TYPE_STRING));
$cronjobPathOption = $input->registerOption(new ezcConsoleOption('p', 'path', ezcConsoleInput::TYPE_STRING));
$extensionPartOption = $input->registerOption(new ezcConsoleOption('e', 'extension', ezcConsoleInput::TYPE_STRING));
try {
    $input->process();
} catch (ezcConsoleOptionException $e) {
    die($e->getMessage());
}
ezcBaseInit::setCallback('ezcInitDatabaseInstance', 'erLhcoreClassLazyDatabaseConfiguration');
$instance = erLhcoreClassSystem::instance();
$instance->SiteAccess = $helpOption->value;
$instance->SiteDir = dirname(__FILE__) . '/';
$cfgSite = erConfigClassLhConfig::getInstance();
$defaultSiteAccess = $cfgSite->getSetting('site', 'default_site_access');
$optionsSiteAccess = $cfgSite->getSetting('site_access_options', $helpOption->value);
$instance->Language = $optionsSiteAccess['locale'];
$instance->ThemeSite = $optionsSiteAccess['theme'];
$instance->WWWDirLang = '/' . $helpOption->value;
// php cron.php -s site_admin -c cron/workflow
// php cron.php -s site_admin -e customstatus -c cron/customcron
 /**
  * Main executor method
  *
  * @return void
  */
 public function run()
 {
     $input = new \ezcConsoleInput();
     $versionOption = $input->registerOption(new \ezcConsoleOption('v', 'version'));
     $versionOption->shorthelp = 'Prints the version and exits';
     $versionOption->isHelpOption = true;
     $helpOption = $input->registerOption(new \ezcConsoleOption('h', 'help'));
     $helpOption->isHelpOption = true;
     $helpOption->shorthelp = 'Prints this usage information';
     $outputOption = $input->registerOption(new \ezcConsoleOption('o', 'output', \ezcConsoleInput::TYPE_STRING, 'STDOUT', false, 'Output file for generated code (default: STDOUT)'));
     $pharOption = $input->registerOption(new \ezcConsoleOption('p', 'phar', \ezcConsoleInput::TYPE_NONE, null, false, 'Build a phar archive of directory contents', null, array(new \ezcConsoleOptionRule($input->getOption('o')))));
     $input->registerOption(new \ezcConsoleOption('i', 'include', \ezcConsoleInput::TYPE_STRING, '*.php', true, 'File pattern to include (default: *.php)'));
     $input->registerOption(new \ezcConsoleOption('e', 'exclude', \ezcConsoleInput::TYPE_STRING, null, true, 'File pattern to exclude'));
     $input->registerOption(new \ezcConsoleOption('b', 'basedir', \ezcConsoleInput::TYPE_STRING, null, false, 'Basedir for filepaths'));
     $input->registerOption(new \ezcConsoleOption('t', 'template', \ezcConsoleInput::TYPE_STRING, null, false, 'Path to code template to use'));
     $input->registerOption(new \ezcConsoleOption('', 'format', \ezcConsoleInput::TYPE_STRING, null, false, 'Dateformat string for timestamp'));
     $input->registerOption(new \ezcConsoleOption('', 'linebreak', \ezcConsoleInput::TYPE_STRING, null, false, 'Linebreak style (CR, CR/LF or LF)'));
     $input->registerOption(new \ezcConsoleOption('', 'indent', \ezcConsoleInput::TYPE_STRING, null, false, 'String used for indenting (default: 3 spaces)'));
     $lintOption = $input->registerOption(new \ezcConsoleOption('', 'lint', \ezcConsoleInput::TYPE_NONE, null, false, 'Run lint on generated code'));
     $input->registerOption(new \ezcConsoleOption('', 'lint-php', \ezcConsoleInput::TYPE_STRING, null, false, 'PHP binary path for linting (default: /usr/bin/php or c:\\php\\php.exe)'));
     $input->argumentDefinition = new \ezcConsoleArguments();
     $input->argumentDefinition[0] = new \ezcConsoleArgument("directory");
     $input->argumentDefinition[0]->shorthelp = "The directory to process.";
     try {
         $input->process();
     } catch (\ezcConsoleException $e) {
         echo $e->getMessage() . "\n\n";
         $this->showVersion();
         $this->showUsage();
         exit(3);
     }
     if ($helpOption->value === true) {
         $this->showVersion();
         $this->showUsage();
         exit(0);
     }
     if ($versionOption->value === true) {
         $this->showVersion();
         exit(0);
     }
     try {
         $scanner = $this->getScanner($input);
         if ($pharOption->value !== false) {
             $phar = $this->buildPhar($scanner, $input);
             $scanner->rewind();
         }
         $finder = new ClassFinder();
         $found = $finder->parseMulti($scanner);
         // this unset is needed to "fix" a segfault on shutdown
         unset($scanner);
         $builder = $this->getBuilder($found, $input);
         if ($lintOption->value === true) {
             exit($this->lintCode($builder->render(), $input) ? 0 : 4);
         }
         if ($outputOption->value == 'STDOUT') {
             echo $builder->render();
         } else {
             if ($pharOption->value !== false) {
                 $builder->setVariable('PHAR', basename($outputOption->value));
                 $phar->setStub($builder->render());
                 $phar->stopBuffering();
                 echo "phar archive '{$outputOption->value}' generated.\n\n";
             } else {
                 $builder->save($outputOption->value);
                 echo "Autoload file '{$outputOption->value}' generated.\n\n";
             }
         }
         exit(0);
     } catch (\Exception $e) {
         fwrite(STDERR, "Error while processing request:\n");
         fwrite(STDERR, ' - ' . $e->getMessage() . "\n");
         exit(1);
     }
 }