Two problems: 1. Using XML and YAML Mapping you cannot perform Reflection on the not existing classes (in case of the EntityGenerator). Most of the Class Metadata code however relies on Reflection. This is why the disconnected stuff is necessary (maybe we should call it Unreflected).
2. The problem is inheritance hierachies cannot be generated from the YAML and XML metadata information (EntityGenerator). Its just not supported conceptually, because the mapping information is missing the information which class is parent to which other. That is why the DisconnectedClassMetadata is necessary to return an empty array() instead of trying to call get_parent_classes for a non existant class. greetings, Benjamin On Mon, 22 Nov 2010 15:52:52 +0100, Thomas Rabaix <[email protected]> wrote: > Hello, > > The DoctrineCommand::getBundleMetadatas function uses a > SymfonyDisconnectedClassMetadataFactory which failed to load information > from parent class as the DisconnectedClassMetadataFactory::getParentClass > always return an empty array. I have made a quick patch here, I don't want > to create a pull request as I don't know any side effect. > > I don't see the point of SymfonyDisconnectedClassMetadataFactory ... as > the class will never load all entities information. > > diff --git a/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php > b/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php > index da04e18..96e2e76 100644 > --- a/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php > +++ b/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php > @@ -139,7 +139,8 @@ abstract class DoctrineCommand extends Command > $bundleMetadatas = array(); > $entityManagers = $this->getDoctrineEntityManagers(); > foreach ($entityManagers as $key => $em) { > - $cmf = new SymfonyDisconnectedClassMetadataFactory($em); > +// $cmf = new SymfonyDisconnectedClassMetadataFactory($em); > + $cmf = $em->getMetadataFactory(); > $metadatas = $cmf->getAllMetadata(); > foreach ($metadatas as $metadata) { > > @@ -151,19 +152,4 @@ abstract class DoctrineCommand extends Command > > return $bundleMetadatas; > } > -} > - > -class SymfonyDisconnectedClassMetadataFactory extends > DisconnectedClassMetadataFactory > -{ > - /** > - * @override > - */ > - protected function _newClassMetadataInstance($className) > - { > - if (class_exists($className)) { > - return new ClassMetadata($className); > - } else { > - return new ClassMetadataInfo($className); > - } > - } > } -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/symfony-devs?hl=en
