Heim  >  Artikel  >  Backend-Entwicklung  >  bundle name是否该永远包含 vendor name?

bundle name是否该永远包含 vendor name?

WBOY
WBOYOriginal
2016-08-18 09:15:351444Durchsuche

Symfony3 当执行 php bin/console generate:bundle 创建 bundle 时候,控制台会询问是否会在未来把将要创建的 bundle 共享。

如果选择 no,则 bundle 创建后目录如 src/UserBundle ,如果选择 yes ,则需要增加 vendor name,创建后如 src/XX/UserBundle

然而在创建期间也许没有共享计划,那么以后如果有共享的打算,则需要重新组织文件 namespace 和相应的配置文件。

那么是否应该在 bundle 创建时始终包含 vendor name?

比如 src/XX/UserBundle 或者 src/XX/Bundle/UserBundle

这样带来的副作用是,当你不准备共享当前 bundle 时,你在应用程序源代码中多了一个 namespace。或者定义 serviceroute 时多了一个前缀,如xx_user.user_manager

这样可以免去后顾之忧,不用担心以后共享当前 bundle 时,需要更改目录结构,namespace 以及 route 和 service 的命名空间问题。

有什么看法吗?

回复内容:

Symfony3 当执行 php bin/console generate:bundle 创建 bundle 时候,控制台会询问是否会在未来把将要创建的 bundle 共享。

如果选择 no,则 bundle 创建后目录如 src/UserBundle ,如果选择 yes ,则需要增加 vendor name,创建后如 src/XX/UserBundle

然而在创建期间也许没有共享计划,那么以后如果有共享的打算,则需要重新组织文件 namespace 和相应的配置文件。

那么是否应该在 bundle 创建时始终包含 vendor name?

比如 src/XX/UserBundle 或者 src/XX/Bundle/UserBundle

这样带来的副作用是,当你不准备共享当前 bundle 时,你在应用程序源代码中多了一个 namespace。或者定义 serviceroute 时多了一个前缀,如xx_user.user_manager

这样可以免去后顾之忧,不用担心以后共享当前 bundle 时,需要更改目录结构,namespace 以及 route 和 service 的命名空间问题。

有什么看法吗?

为什么要 vendorName ?

VendorName 是为了避免不同 Vendor 的相同 bundleName 的冲突,简单来说就是为了避免命名冲突,比如 Foo 和 Bar 两个 Vendor 都要创建一个 UserBundle,那么可果不加 vendorName 就会产生冲突,这相不难理解吧?

什么情况下应该包含 vendorName ?

如果你的 bundle 只在当前项目中使用,而不是作为共享的第三方 bundle(一般需要发布成 composer package),那么可以不需要 vendorName,反之则需要加上 venderName。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn