自 Symfony 2.8 以来生成捆绑包时询问多应用程序的新选项

2024-04-20

在 Symfony 2.8 之前,因为我需要 Symfony 中的多应用系统,

我遵循这两篇文章来实现这一目标:

-http://jolicode.com/blog/multiple-applications-with-symfony2 http://jolicode.com/blog/multiple-applications-with-symfony2

-http://mihai-stancu.ro/2015/10/03/multiple-apps-in-one-repo-with-symfony2/ http://mihai-stancu.ro/2015/10/03/multiple-apps-in-one-repo-with-symfony2/

SensioLabs 并不真正支持它,但它运行良好,带有附加的控制台选项(php app/console generate:bundle --app=app1例如)选择您需要在哪个应用程序上使用命令。

我现在看到从 Symfony 2.8 开始,生成包时会提出一个新问题:

欢迎使用 Symfony 捆绑包生成器!
您是否计划在多个应用程序之间共享此捆绑包? [不]:

但我在网上找不到任何有关此功能的信息。 它与 MultiApp 功能相关吗?有相关信息吗?

无论如何,谢谢并致以最诚挚的问候!


的答案@迈克尔-西沃洛博夫 https://stackoverflow.com/users/2261177/michael-sivolobov非常好。

但是,我想在回答问题时更加明确:

您是否计划在多个应用程序之间共享此捆绑包? [不]:

Symfony Bundle 生成器需要决定生成的包的用途。

如果这个问题的答案是yes:这意味着您生成的捆绑包将被使用“as is" 具有多个项目,而不仅仅是您当前的项目,因此您需要在前面加上 "vendor" 生成的包的名称,并将前缀添加到生成的包的命名空间中。

如果不遵循约定,控制台将打印一条消息,内容如下:

每个包都托管在一个命名空间下(如 Acme/BlogBu​​ndle)。这 命名空间应以“供应商”名称开头,例如您的公司名称, 您的项目名称或您的客户名称,后跟一个或多个 可选的类别子命名空间,它应该以捆绑包结尾 名称本身(必须以 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 .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自 Symfony 2.8 以来生成捆绑包时询问多应用程序的新选项 的相关文章

随机推荐