# Attribute-Tabelle für eigene Entity

**URL:** <https://forum.shopware.com/t/attribute-tabelle-fur-eigene-entity/53307>\
**Category:** Programmierung\
**Created:** [6. Juni 2018 um 12:53 UTC](https://forum.shopware.com/t/attribute-tabelle-fur-eigene-entity/53307 "2018-06-06T12:53:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![fivetide](https://avatars.discourse-cdn.com/v4/letter/f/919ad9/32.png) [@fivetide](https://forum.shopware.com/u/fivetide)\
**Post date:** [6. Juni 2018 um 12:53 UTC](https://forum.shopware.com/t/attribute-tabelle-fur-eigene-entity/53307/1 "2018-06-06T12:53:15Z")

</div>

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.&nbsp;  
\Shopware\Components\Model\Generator::getClassNameOfTableName  
kann nicht mit Entities aus Plugins arbeiten, da&nbsp;  
[\Shopware\Components\Model\Generator::createTableMapping](https://github.com/shopware/shopware/blob/5.4/engine/Shopware/Components/Model/Generator.php#L365)  
einen eigenen DirectoryIterator instanziert und nur die Shopware-eigenen Entities betrachtet.&nbsp;ಠ\_ಠ  
\Shopware\Components\Model\Generator  
zu erweitern kommt nicht in betracht, da dieser nicht aus dem Container kommt, sondern in  
[\Shopware\Components\Model\ModelManager::createModelGenerator](https://github.com/shopware/shopware/blob/5.4/engine/Shopware/Components/Model/ModelManager.php#L285)  
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&nbsp;\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!

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [6. Juni 2018 um 15:57 UTC](https://forum.shopware.com/t/attribute-tabelle-fur-eigene-entity/53307/2 "2018-06-06T15:57:24Z")

</div>

Ich denke auch das du einen Decorator schreiben musst. Wenn du die 57 Methoden nicht alle runter schreiben willst helfen wie vielleicht diese magic methods von PHP. Damit müsstest du das halbwegs dynamsich und ohne viel Code hinbekommen.

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [6. Juni 2018 um 20:05 UTC](https://forum.shopware.com/t/attribute-tabelle-fur-eigene-entity/53307/3 "2018-06-06T20:05:34Z")

</div>

Du könntest den models Service dekorieren und bei createModelGenerator deine angepasste Instanz von ModelGenerator zurückgeben. Am besten erstellst du einen PR mit der Container Erweitrerung. Evtl. sogar die Pfade via Parameter Collection rein geben, damit man Sie via CompilerPass erweitern kann&nbsp; ![Halo](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/halo.png "Halo")

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [7. Juni 2018 um 12:05 UTC](https://forum.shopware.com/t/attribute-tabelle-fur-eigene-entity/53307/4 "2018-06-07T12:05:02Z")

</div>

Ich habe für den Fall auch mal ein Issue angelegt&nbsp;[Shopware Issuetracker](https://issues.shopware.com/issues/SW-21897)
