Example #1
0
 private static function loadConfig(Container $container)
 {
     global $argv;
     $configPaths = array();
     foreach ($argv as $arg) {
         if (0 === strpos($arg, '--config=')) {
             $configFile = substr($arg, 9);
             if (!file_exists($configFile)) {
                 echo sprintf('Config file "%s" does not exist', $configFile) . PHP_EOL;
                 exit(1);
             }
             $configPaths = array($configFile);
         }
     }
     if (empty($configPaths)) {
         $configPaths = array(getcwd() . '/phpbench.json', getcwd() . '/phpbench.json.dist');
     }
     foreach ($configPaths as $configPath) {
         if (!file_exists($configPath)) {
             continue;
         }
         $config = file_get_contents($configPath);
         try {
             $parser = new JsonParser();
             $parser->parse($config);
         } catch (ParsingException $e) {
             echo 'Error parsing config file:' . PHP_EOL . PHP_EOL;
             echo $e->getMessage();
             exit(1);
         }
         $config = json_decode($config, true);
         $config['config_path'] = $configPath;
         $container->mergeParameters($config);
     }
 }
 protected function runCommand($commandName, array $arguments)
 {
     $container = new Container();
     $container->configure();
     $container->build();
     $application = $container->get('console.application');
     $command = $application->find($commandName);
     $tester = new CommandTester($command);
     $tester->execute($arguments);
     return $tester;
 }
Example #3
0
 private function registerTabular(Container $container)
 {
     $container->register('tabular.xpath_resolver', function () {
         $resolver = new XPathResolver();
         $resolver->registerFunction('parameters_to_json', 'PhpBench\\Report\\Dom\\functions\\parameters_to_json');
         $resolver->registerFunction('class_name', 'PhpBench\\Report\\Dom\\functions\\class_name');
         return $resolver;
     });
     $container->register('tabular.table_builder', function (Container $container) {
         return new TableBuilder($container->get('tabular.xpath_resolver'));
     });
     $container->register('tabular.formatter.registry', function (Container $container) {
         $registry = new ArrayRegistry();
         $registry->register('printf', new PrintfFormat());
         $registry->register('balance', new BalanceFormat());
         $registry->register('number', new NumberFormat());
         return $registry;
     });
     $container->register('tabular.formatter', function (Container $container) {
         return new Formatter($container->get('tabular.formatter.registry'));
     });
     $container->register('tabular', function (Container $container) {
         return new Tabular($container->get('tabular.table_builder'), $container->get('tabular.definition_loader'), $container->get('tabular.formatter'), $container->get('tabular.expander'));
     });
     $container->register('tabular.definition_loader', function (Container $container) {
         return new Loader($container->get('json_schema.validator'));
     });
     $container->register('tabular.expander', function (Container $container) {
         return new Expander();
     });
 }