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