バンドルを作成するとき、Symfony3
当执行 php bin/console generate:bundle
、コンソールは、作成するバンドルが今後共有されるかどうかを尋ねます。
選択した場合no
,则 bundle 创建后目录如 src/UserBundle
,如果选择 yes
,则需要增加 vendor name,创建后如 src/XX/UserBundle
ただし、作成中に共有計画がない可能性があります。将来共有する予定がある場合は、ファイル namespace
と対応する設定ファイルを再編成する必要があります。
それでは、バンドルの作成時に常にベンダー名を含める必要がありますか?
例えばsrc/XX/UserBundle
或者 src/XX/Bundle/UserBundle
この副作用として、現在のバンドルを共有しない場合、アプリケーションのソース コードに余分な namespace
。或者定义 service
和 route
时多了一个前缀,如xx_user.user_manager
が含まれることになります。または、service
と route
を定義するときに、xx_user.user_manager
などの追加のプレフィックスがあります
これにより、将来現在のバンドルを共有するときに、ディレクトリ構造、名前空間、ルート、およびサービスの名前空間の問題を変更することを心配する必要がなくなります。
どう思いますか?
バンドルを作成するとき、Symfony3
当执行 php bin/console generate:bundle
、コンソールは、作成するバンドルが今後共有されるかどうかを尋ねます。
選択した場合no
,则 bundle 创建后目录如 src/UserBundle
,如果选择 yes
,则需要增加 vendor name,创建后如 src/XX/UserBundle
ただし、作成中に共有計画がない可能性があります。将来共有する予定がある場合は、ファイル namespace
と対応する設定ファイルを再編成する必要があります。
それでは、バンドルの作成時に常にベンダー名を含める必要がありますか?
例えばsrc/XX/UserBundle
或者 src/XX/Bundle/UserBundle
この副作用として、現在のバンドルを共有しない場合、アプリケーションのソース コードに余分な namespace
。或者定义 service
和 route
时多了一个前缀,如xx_user.user_manager
が含まれることになります。または、service
と route
を定義するときに、xx_user.user_manager
などの追加のプレフィックスがあります
これにより、将来現在のバンドルを共有するときに、ディレクトリ構造、名前空間、ルート、およびサービスの名前空間の問題を変更することを心配する必要がなくなります。
どう思いますか?
なぜベンダー名なのか?
VendorName は、異なる Vendor の同じ BundleName の競合を避けるためです。たとえば、Foo と Bar の 2 つの Vendor が UserBundle を作成する必要があるため、vendorName を追加しないと競合してしまいます。これは難しくありませんか?
どのような状況でvendorNameを含める必要がありますか?
バンドルが共有サードパーティ バンドルとしてではなく、現在のプロジェクトでのみ使用されている場合 (通常はコンポーザー パッケージとして公開する必要があります)、vendorName は必要ありません。それ以外の場合は、vendorName が必要です。