Exemple #1
0
 public function testResolveMonolog()
 {
     $monolog = new Monolog();
     $log = new Logger('name');
     $log->pushHandler($monolog);
     $monolog->setDispatcher($this->process->getDispatcher());
     $this->profiler->setLogger($monolog);
     $log->addError('Bar');
     $this->profiler->alert('FooBar');
     $this->assertInstanceOf(\Generator::class, $this->datasource->getProcess($this->process->getId()));
 }
Exemple #2
0
 /**
  * @param array $options
  * @return Profiler
  *
  * @throws \RuntimeException
  * @throws AccessException
  * @throws UndefinedOptionsException
  * @throws MissingOptionsException
  * @throws InvalidOptionsException
  * @throws NoSuchOptionException
  * @throws OptionDefinitionException
  */
 public function create(array $options = [])
 {
     $options = $this->resolveOptions($options);
     if (!$options[self::OPTION_ENABLE]) {
         return new NullProfiler();
     }
     if ($options[self::OPTION_ENVIRONMENT] !== null) {
         Profiler::$environment = $options[self::OPTION_ENVIRONMENT];
     }
     $profiler = new Profiler();
     switch ($options[self::OPTION_DATASOURCE_CLASS]) {
         default:
         case File::class:
             $datasource = new File($options[self::OPTION_DATASOURCE_PROFILES_FOLDER]);
             break;
         case Memory::class:
             $datasource = new Memory();
     }
     $profiler->setDataSource($datasource);
     $profiler->registerCollectorClasses($options[self::OPTION_COLLECTORS]);
     $dispatcher = $profiler->getContext()->getProcess()->getDispatcher();
     $className = $options['logger'];
     $logger = new $className();
     $logger->setDispatcher($dispatcher);
     $profiler->setLogger($logger);
     $profiler->setTimeline(new TimelineComponent($dispatcher));
     return $profiler;
 }