I agree with the idea, but disagree with the solution. Doctrine code should not be in the Doctrine namespace. It is not released by the Doctrine Project so that would sort of be name stealing. In the Doctrine case this argument sounds weak (coming from me), but think about Zend bundle. We cant just go and define top level namespaces that other projects already use.
Everything Symfony related (and bundles shipped with Symfony are) should be prefixed with Symfony: * Symfony\Bundle\DoctrineBundle * Symfony\Doctrine\Bundle * Symfony\Bundle\ZendBundle * Symfony\Zend\Bundle greetings, Benjamin On Sun, 23 Jan 2011 12:47:07 +0100 Fabien Potencier <[email protected]> wrote: > Hi all, > > Now that the developer is free to use any namespace for his bundles, > it's time to talk about the naming conventions (the best practices) once > again. > > This RFC is about the bundle namespace name, not the bundle class name. > > First things first, the namespace must adhere to the PSR-0 standard; and > we should also keep the Bundle suffix for the last namespace segment. > > One of the PSR-0 rules says that the first segment must be the vendor > name. This rule was not possible some days ago as all bundles were > stored under Bundle\ or Application\. It is now possible because we have > removed this constraint and also because we have added a fallback > mechanism to the Symfony2 autoloader. So, if the autoloader does not > find a class, it can look for it under a fallback directory: > > $loader = new UniversalClassLoader(); > $loader->registerNamespaces(array( > 'Symfony' => __DIR__.'/src', > )); > $loader->registerNamespaceFallback(__DIR__.'/src'); > $loader->register(); > > With the above configuration, if you try to use the 'Sensio\Foo' class, > the autoloader will look for a __DIR__.'/src/Sensio/Foo.php' class. This > acts as a catch-all but if the class is not found, the autoloader gives > up and let other autolaoders do their work. > > So, we have several vendor types: > > * Symfony (a very special one); > > * Companies working with Symfony and publishing bundles (Sensio, Liip, > ...); > > * Open-Source software (Doctrine, Twig, ...). > > And here are some existing examples: > > * Symfony vendor: Symfony\Bundle\FrameworkBundle > > * Sensio vendor: Sensio\Bundle\CasBundle > > * Liip vendor: Liip\ViewBundle\LiipViewBundle > > Bascially, the first segment is always the vendor name, no surprise > here. But after that, we have different possibilities for the categories: > > * no category at all (Liip case); > * a Bundle category. > > The 'Bundle' category better separates things and is probably a good > idea if you have many things to store under your namespace. > > And for big namespaces, it can be interesting to also add a Symfony > category in-between. Let's take another example. I think that the > DoctrineBundle should be under the Doctrine vendor namespace (note that > it is a matter of how we see things: Does Symfony provides support for > Doctrine or is it the other way around.). > > Anyway, here are all the sensible possibilities I can think of: > > * Doctrine\DoctrineBundle > * Doctrine\Bundle\DoctrineBundle > * Doctrine\Symfony\DoctrineBundle > * Doctrine\Symfony\Bundle\DoctrineBundle > > Which one makes more sense? As the bundles are suffixed by Bundle, I > think that 'Doctrine\Symfony\DoctrineBundle' is the best one. But I also > like the explicit Bundle category. > > What do you think? > > Fabien > > -- > Fabien Potencier > Sensio CEO - symfony lead developer > sensiolabs.com | symfony-project.org | fabien.potencier.org > Tél: +33 1 40 99 80 80 > > -- > 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 > -- 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
