Hallo zusammen!
Ich möchte gerne eine Attribut-Tabelle für eine Entity aus einem eigenen Plugin verwenden.
Dafür habe ich diese Hürden bereits überwunden:
- Anlegen der Tabelle in Plugin::install (einfach)
- Eweitern von %shopware_attribute.table_entity_mapping% über einen CompilerPass
- Anlegen des Attributes über den CrudService ist ab hier möglich
Wo es hakt: Die Erzeugung der Attribute-Klassen.
\Shopware\Components\Model\Generator::getClassNameOfTableName
kann nicht mit Entities aus Plugins arbeiten, da
\Shopware\Components\Model\Generator::createTableMapping
einen eigenen DirectoryIterator instanziert und nur die Shopware-eigenen Entities betrachtet. ಠ_ಠ
\Shopware\Components\Model\Generator
zu erweitern kommt nicht in betracht, da dieser nicht aus dem Container kommt, sondern in
\Shopware\Components\Model\ModelManager::createModelGenerator
erzeugt wird. (╯°□°)╯︵ ┻━┻
Die einzigen Möglichkeiten die ich im Moment sehe, wären
- Ein Decorator für ModelManager (mit 57 public functions)
- Ein PR, der \Shopware\Components\Model\Generator in den Container umzieht (und auf merge warten und dann den Shop updaten, findet unser Kunde vielleicht nicht so toll)
Für kreative Vorschläge wäre ich sehr dankbar!