Heim >Backend-Entwicklung >PHP-Tutorial >Sollte der Paketname immer den Namen des Anbieters enthalten?
In Symfony3
fragt die Konsole beim Ausführen von php bin/console generate:bundle
zum Erstellen eines Bundles, ob das zu erstellende Bundle in Zukunft geteilt werden soll.
Wenn Sie no
auswählen, sieht das Verzeichnis nach der Erstellung wie folgt aus: src/UserBundle
. Wenn Sie yes
auswählen, müssen Sie den Namen des Anbieters hinzufügen. Nach der Erstellung sieht das Verzeichnis wie folgt aus: src/XX/UserBundle
Bei der Erstellung ist jedoch möglicherweise kein Freigabeplan vorhanden. Wenn Sie in Zukunft eine Freigabe planen, müssen Sie die Datei namespace
und die entsprechende Konfigurationsdatei neu organisieren.
Sollte der Anbietername bei der Erstellung des Bundles immer angegeben werden?
Zum Beispiel src/XX/UserBundle
oder src/XX/Bundle/UserBundle
Der Nebeneffekt davon ist, dass Sie, wenn Sie das aktuelle Bundle nicht teilen, ein zusätzliches namespace
im Quellcode der Anwendung haben. Oder es gibt ein zusätzliches Präfix bei der Definition von service
und route
, z. B. xx_user.user_manager
Dadurch müssen Sie sich bei der künftigen Freigabe des aktuellen Pakets keine Gedanken mehr über die Änderung der Verzeichnisstruktur, des Namespace, der Route und des Service-Namespace machen.
Was denkst du?
In Symfony3
fragt die Konsole beim Ausführen von php bin/console generate:bundle
zum Erstellen eines Bundles, ob das zu erstellende Bundle in Zukunft geteilt werden soll.
Wenn Sie no
auswählen, sieht das Verzeichnis nach der Erstellung wie folgt aus: src/UserBundle
. Wenn Sie yes
auswählen, müssen Sie den Namen des Anbieters hinzufügen. Nach der Erstellung sieht das Verzeichnis wie folgt aus: src/XX/UserBundle
Bei der Erstellung ist jedoch möglicherweise kein Freigabeplan vorhanden. Wenn Sie in Zukunft eine Freigabe planen, müssen Sie die Datei namespace
und die entsprechende Konfigurationsdatei neu organisieren.
Sollte der Anbietername bei der Erstellung des Bundles immer angegeben werden?
Zum Beispiel src/XX/UserBundle
oder src/XX/Bundle/UserBundle
Der Nebeneffekt davon ist, dass Sie, wenn Sie das aktuelle Bundle nicht teilen, ein zusätzliches namespace
im Quellcode der Anwendung haben. Oder es gibt ein zusätzliches Präfix bei der Definition von service
und route
, z. B. xx_user.user_manager
Dadurch müssen Sie sich bei der künftigen Freigabe des aktuellen Pakets keine Gedanken mehr über die Änderung der Verzeichnisstruktur, des Namespace, der Route und des Service-Namespace machen.
Was denkst du?
Warum VendorName?
VendorName dient dazu, den Konflikt desselben BundleNamens verschiedener Anbieter zu vermeiden. Einfach ausgedrückt: Wenn zwei Anbieter, Foo und Bar, ein UserBundle erstellen müssen, tritt ein Konflikt auf VendorName wird nicht hinzugefügt. Nicht schwer zu verstehen, oder?
Wann sollte VendorName enthalten sein?
Wenn Ihr Bundle nur im aktuellen Projekt und nicht als gemeinsam genutztes Drittanbieter-Bundle verwendet wird (muss normalerweise als Composer-Paket veröffentlicht werden), ist VendorName nicht erforderlich, andernfalls ist VendorName erforderlich.