/** * @param $entity * @param Definition|null $definition * @return Definition|null */ private function loadDefinitionFromEntity($entity, $definition = null) { $definitionClass = null; if (property_exists($entity, 'definition')) { $definitionClass = $entity::$definition; } if (method_exists($entity, 'definition')) { $definitionClass = $entity::definition(); } if (null !== $definitionClass) { $definition = is_object($definitionClass) ? $definitionClass : new $definitionClass(); } if (null === $definition) { $definition = new Definition(); } $configuration = $definition->getConfiguration(); $configuration['entity'] = $entity; $definition->setConfiguration($configuration); return $definition; }