在
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。或者定義 service 和 route 時多了一個首碼,如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。或者定義 service 和 route 時多了一個首碼,如xx_user.user_manager
這樣可以免去後顧之憂,不用擔心以後共用當前 bundle 時,需要更改目錄結構,namespace 以及 route 和 service 的命名空間問題。
有什麼看法嗎?
為什麼要 vendorName ?
VendorName 是為了避免不同 Vendor 的相同 bundleName 的衝突,簡單來說就是為了避免命名衝突,比如 Foo 和 Bar 兩個 Vendor 都要建立一個 UserBundle,那麼可果不加 vendorName 就會產生衝突,這相不難理解吧?
什麼情況下應該包含 vendorName ?
如果你的 bundle 只在當前項目中使用,而不是作為共用的第三方 bundle(一般需要發布成 composer package),那麼可以不需要 vendorName,反之則需要加上 venderName。