public function load($key, array $options, DefinitionRegistry $registry) { $definition = new Definition($options['entity'], $this->doctrine->getManagerForClass($options['entity'])); $definition->setTemplates($this->getTemplateDefinition($options['templates'])); $definition->setObjectRetriever($options['object_retriever']); $definition->setController($options['controller']); $definition->setFlags(['create' => $options['create'], 'update' => $options['update'], 'delete' => $options['delete']]); $definition->setIndex($this->getIndexDefinition($key, $options)); $definition->setForm($this->getFormDefinition($options['form'], $options['form_options_provider'])); $definition->setName($key); if (null === $options['title']) { $definition->setEntityTitle(ucfirst(str_replace(['-', '_', '.'], ' ', $key))); } else { $definition->setEntityTitle($options['title']); } $definition->setExtras($options['extras']); $registry->addDefinition($definition, $key); }