/**
  * 
  * @param string[] $classes
  */
 public function parse($classes)
 {
     $config = [];
     foreach ($classes as $class) {
         $classAnnotationHolder = $this->parseClass($class);
         $event = new ParseEvent(ParseEvent::EVENT_CLASS_PARSED, $classAnnotationHolder, ['config' => $this->config, 'scannedConfig' => $config]);
         $this->eventManager->triggerEvent($event);
         $config = ArrayUtils::merge($config, $event->getResult());
     }
     $finalizeEvent = new ParseEvent(ParseEvent::EVENT_FINALIZE, $config, ['config' => $this->config]);
     $this->eventManager->triggerEvent($finalizeEvent);
     $config = $finalizeEvent->getTarget();
     return $config;
 }