get('FormElementManager'); $formElementManager->injectFactory($annotationBuilder); $config = $serviceLocator->get('Config'); if (isset($config['form_annotation_builder'])) { $config = $config['form_annotation_builder']; if (isset($config['annotations'])) { foreach ((array) $config['annotations'] as $fullyQualifiedClassName) { $annotationBuilder->getAnnotationParser()->registerAnnotation($fullyQualifiedClassName); } } if (isset($config['listeners'])) { foreach ((array) $config['listeners'] as $listenerName) { $listener = $serviceLocator->get($listenerName); if (!($listener instanceof ListenerAggregateInterface)) { throw new RuntimeException(sprintf('Invalid event listener (%s) provided', $listenerName)); } $listener->attach($annotationBuilder->getEventManager()); } } if (isset($config['preserve_defined_order'])) { $annotationBuilder->setPreserveDefinedOrder($config['preserve_defined_order']); } } return $annotationBuilder; } }