Hi, Sorry for the confusion regarding the yml markup, I was using respositoryClass *not* RespositoryClass.
Thanks, Colin On Tue, Mar 29, 2011 at 10:02 AM, Jonathan Wage <[email protected]> wrote: > Try repositoryClass instead of RepositoryClass. > > - Jon > > On Tue, Mar 29, 2011 at 8:44 AM, cdecarlo <[email protected]> wrote: > >> Hi, >> >> To be honest I'm not sure if the problem is with me and my >> understanding of preferred directory structure or the code but here is >> the problem I was recently faced with. >> >> I'm using yml to map my entities and I am planning on having Entity >> Repositories for most of my entities. The docs don't really touch on >> how to define the RepositoryClass in the yml mapping so I took a >> couple stabs at it and failed miserably. The exception being thrown >> was: >> >> Repository $metadata->customRepositoryClassName and bundle don't have >> a common namespace, generation failed because the target directory >> cannot be detected. >> >> This exception is thrown if the customRespositoryClassName isn't a >> part of the bundle namespace (returned by Symfony\Component\HttpKernel >> \Bundle\Bundle#getNamespace). So in my efforts to get this to work >> without modifying the command I prepended the bundle namespace to the >> definition of the RepositoryClass in the yml file. >> >> eg. >> >> # src/Acme/DemoBundle/Resources/config/doctrine/metadata/orm/ >> Acme.DemoBundle.Entity.Post.dcm.yml >> Acme\DemoBundle\Entity\Post: >> type: entity >> table: posts >> RepositoryClass: AcmeDemoBundle\Entity\PostRepository >> >> This 'worked' but as a result a new directory called AcmeDemoBundle >> was created in the /src directory and the path to the >> PostRepository.php class was /src/AcmeDemoBundle/Entity/ >> PostRepository.php. At this point I'm convinced that there is a >> problem with the doctrine:generate:repositories command, so I changed >> the if clause which was triggering the exception from: >> >> if (strpos($metadata->customRepositoryClassName, >> $foundBundle->getNamespace()) === false) { >> >> to: >> >> if (strpos(str_replace("\\","",$metadata- >> >customRepositoryClassName), $foundBundle->getNamespace()) === false) >> { >> >> and the yml RepositoryClass definition to: >> >> # src/Acme/DemoBundle/Resources/config/doctrine/metadata/orm/ >> Acme.DemoBundle.Entity.Post.dcm.yml >> Acme\DemoBundle\Entity\Post: >> type: entity >> table: posts >> RepositoryClass: Acme\DemoBundle\Entity\PostRepository >> >> This time when I ran the command it generated the repository class in / >> src/Acme/DemoBundle/Entity which I think is the original intention. >> >> Am I correct in thinking this is a little bug or am I just not >> understanding somehting? >> >> Thanks, >> >> Colin >> >> >> >> -- >> 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 >> > > > > -- > Connect with me on *http://twitter.com/jwage* <http://twitter.com/jwage> > and http://about.me/jwage to keep in touch. > -- PS. I've done the unthinkable and changed my email address, please send any future mail to [email protected] -- 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
