Пример #1
0
 /**
  * @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());
 }
Пример #2
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);
     }
 }