Indidual "information" is provided by "providers", which are responsible for saying if they can provide any information in the current environment, for example: if there is a .git directory, then the GIT provider will return some information.
Пример #1
0
 public function registerEnvironment(Container $container)
 {
     $container->register('environment.provider.uname', function (Container $container) {
         return new Provider\Uname();
     }, ['environment_provider' => []]);
     $container->register('environment.provider.php', function (Container $container) {
         return new Provider\Php($container->get('benchmark.remote.launcher'), $container->getParameter('php_binary') !== PHP_BINARY && $container->getParameter('php_binary') !== null);
     }, ['environment_provider' => []]);
     $container->register('environment.provider.unix_sysload', function (Container $container) {
         return new Provider\UnixSysload();
     }, ['environment_provider' => []]);
     $container->register('environment.provider.git', function (Container $container) {
         return new Provider\Git();
     }, ['environment_provider' => []]);
     $container->register('environment.provider.baseline', function (Container $container) {
         return new Provider\Baseline($container->get('benchmark.baseline_manager'), $container->getParameter('env_baselines'));
     }, ['environment_provider' => []]);
     $container->register('environment.supplier', function (Container $container) {
         $supplier = new Supplier();
         foreach ($container->getServiceIdsForTag('environment_provider') as $serviceId => $attributes) {
             $provider = $container->get($serviceId);
             $supplier->addProvider($provider);
         }
         return $supplier;
     });
 }