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); } }
/** * 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); }
/** * 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); }
/** * 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'); } }
/** * 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); } }
/** * 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); } }
/** * 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); } }
/** * 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); } }
/** * 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); } }
/** * 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); } }
/** * 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";
/** * 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()); } }
/** * 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; } }
$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 {
$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);
$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) {
/** * 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); } }
/** * 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); } }
/** * 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); } }
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); } }