Gibt es eine Möglichkeit, ändern Sie die entity mapping-Konfiguration für die Lehre außerhalb der config-Datei?
In meinem standard-Symfony2-app bin ich mit ein paar bundles mit einigen Personen. Einige dieser Gebiete befinden sich nicht im standard-Ordner, der die automatische Zuordnung von Lehre findet (z.B. /src/Acme/DemoBundle/Entities
) sondern an einem anderen Ort.
Ich könnte leicht verwenden Sie config.yml
zu sagen, die Lehre zu verwenden, einen anderen Ort wie folgt:
doctrine:
orm:
auto_mapping: false
mappings:
AcmeDemoBundle:
type: annotation
prefix: Acme\DemoBundle\Entities\
dir: %kernel.cache_dir%\Acme\DemoBundle\Entities
Dieser funktioniert. Aber zu sagen, ich bin mit 10 Bündel mit einer anderen Zuordnung der config.yml
bekommt sehr schnell aufgebläht. Gibt es eine andere Möglichkeit, z.B. mit einem CompilerPass oder per DependencyInjection, damit ich nicht brauchen, um alle Personen in meinem config.yml
? Ich sah schon in der DoctrineBundle
, hatte aber kein Glück so weit.
- Ich war auf der Suche nach genau konfigurieren von Zuordnungen in der config.yml. Danke 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Antwort selbst:
die am meisten einfache Weise ist die Anpassung von autoloading, es gibt keine Notwendigkeit, ändern Sie die Einstellungen. In Symfony standard-Verteilung in autoload.php Sie haben zum hinzufügen von einem anderen Ort, der registerNamespace-Methode:
Lehre suchen dann Elemente, die in der "Foo" namespace erste in dirA und dann in dirB, wenn nicht gefunden.
Können Sie auch andere Konfigurationsdateien mit
imports
Sie haben nicht einmal zu halten, um eine einzelne Datei-Typ. Es ist möglich, zu importieren einer xml-Konfigurationsdatei, um eine yaml-Datei, zum Beispiel.