/** * @test */ public function passingPhpVersionToConstructorSetsPhpVersion() { $config = $this->getMock('PHP_ConfigReport_Config'); $environment = PHP_ConfigReport_Analyzer::PRODUCTION; $phpVersion = PHP_VERSION; $analyzer = new PHP_ConfigReport_Analyzer($config, $environment, $phpVersion); $this->assertSame($phpVersion, $analyzer->getPhpVersion()); }
/** * 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); } }