的答案@迈克尔-西沃洛博夫 https://stackoverflow.com/users/2261177/michael-sivolobov非常好。
但是,我想在回答问题时更加明确:
您是否计划在多个应用程序之间共享此捆绑包?
[不]:
Symfony Bundle 生成器需要决定生成的包的用途。
如果这个问题的答案是yes
:这意味着您生成的捆绑包将被使用“as is" 具有多个项目,而不仅仅是您当前的项目,因此您需要在前面加上 "vendor" 生成的包的名称,并将前缀添加到生成的包的命名空间中。
如果不遵循约定,控制台将打印一条消息,内容如下:
每个包都托管在一个命名空间下(如 Acme/BlogBundle)。这
命名空间应以“供应商”名称开头,例如您的公司名称,
您的项目名称或您的客户名称,后跟一个或多个
可选的类别子命名空间,它应该以捆绑包结尾
名称本身(必须以 Bundle 作为后缀)。
See 捆绑包名称的最佳实践 http://symfony.com/doc/current/cookbook/bundles/best_practices.html#bundle-name有关捆绑包的更多详细信息
命名约定。
使用 / 而不是 \ 作为命名空间分隔符以避免任何问题。
生成的Bundle的文件结构如下src/
目录将是:
├─ src/
│ └─ yourVendor/
│ └─ yourBundle/
│ └─ Controller/
│ └─ DependencyInjection/
│ └─ Resources/
│ └─ Tests/
│ └─ yourVendorYourBundle.php/
如果你回答这个问题No
:这意味着您打算仅将生成的捆绑包用于当前项目,因此您不需要“vendor" 名称作为前缀,因为它永远不会被共享。
生成的Bundle的文件结构如下src/
目录将是:
├─ src/
│ └─ yourBundle/
│ └─ Controller/
│ └─ Resources/
│ └─ Tests/
│ └─ yourBundle.php/
这是一些很好的文档创建项目的最佳实践 http://symfony.com/doc/current/best_practices/creating-the-project.html .