Dieser Artikel ist bereits über 2 Jahre alt. Das gezeigte Vorgehen ist vielleicht nicht mehr aktuell.
Copyright bei Patrick Froch und easy Solutions IT. Dieses Werk ist lizenziert unter Creative Commons BY-NC-SA.

Namen der Bundles
Die Namen der Namespaces und Klassen müssen dem Standard PSR-0 für PHP 5.3 folgen. Zusätzlich sind folgende Punkte zu beachten:- Es sind nur alphanumerische Zeichen (0-9, a-z, A-Z) und der Unterstrich (_) erlaubt.
- Die Namen sollten CamelCase sein (sie beginnen mit einem großen Buchstaben und jeder weitere Teil beginnt zur Abtrennung ebenfalls wieder mit einem großen Buchstaben).
- Es sollten beschreibende Namen verwendet werden, die aus nicht mehr als 2 Wörtern bestehen
- Die Namen werden mit dem Paket- (oder Firemen-) und optional mit dem Kategorieprefix verbunden.
- An die Namen wird die Zeichenkette "Bundle" angehängt.
Acme\Bundle\HelloBundle
, sieht der gültiger
Bundle-Name so aus: AcmeHelloBundle
. Es gibt einen Alias für die Bundle-Namen, es
werden nur kleine Buchstaben und als Trennzeichen der Unterstrich verwendet. Das Wort Bundle wird weggelassen. Der
Alias für AcmeHelloBundle
lautet acme_hello
.
Speicherort der Bundles
Die Bundels werden im Ordner/src
gespeichert. Dort gibt der Namespace die
Ordnerhierarchie an. Das Bundle Acme\Bundle\HelloBundle
wird z.B. unter
/src/Acme/HelloBundle/
gespeichert.
Verzeichnisstruktur
Im Verzeichnis eines Bundles sollte es folgende Struktur geben:HelloBundle.php Controller/ Resources/ meta/ LICENSE config/ doc/ index.rst translations/ views/ public/ Tests/Die Dateien
HelloBundle.php
, Resources/meta/LICENSE
und Resources/doc/index.rst
zwingend erforderlich.
(HelloBundle
ist der Name des Bundles und ist entsprechend auszutauschen!)
Die folgenden Verzeichnisse haben eine spezielle Bedeutung:
Typ | Verzeichnis |
---|---|
Commands | Command/ |
Controllers | Controller/ |
Service Container Extensions | DependencyInjection/ |
Event Listeners | EventListener/ |
Configuration | Resources/config/ |
Web Resources | Resources/public/ |
Translation files | Resources/translations/ |
Templates | Resources/views/ |
Unit and Functional Tests | Tests/ |
Controller
Die logischen Namen der Controller setzen sich wie folgt zusammen:bundle:controller:action
.
Der logische Name AcmeBlogBundle:Blog:show
meint das Bundle
AcmeBlogBundle
(Namespace:
Acme\BlogBundle\Controller
), die Controller-Klasse
BlogController
und die Methode showAction
.
Zu Beachten ist, dass beim Namespace der Teil
Die Klasse kann dann ungefähr so aussehen:
\Controller
weggelassen wird!
Beim Klassennamen wird das Wort Controller
weggelassen!
Beim Namen der Methode wird das Wort Action
weggelassen!
Templates
Bei den Templates ist es ähnlich wie bei den Controllern, nur das es hier keine Namespaces gibt. Die logischen Namen setzen sich so zusammen:BundleName:ControllerName:TemplateName
und meinen folgenden Pfad:
/path/to/BundleName/Resources/views/ControllerName/TemplateName
Auch hier wird im Namen wieder etwas weggelassen, nämlich
Der Name
/Resources/views/
.
AcmeHelloBundle:Hello:index.html.twig
meint also die Datei
src/Acme/HelloBundle/Resources/views/Hello/index.html.twig
.
Kommentare
Einen Kommentar schreiben