Gedanken zur neuen Struktur "Entities via attributes"

Hallo Zusammen,

Ich bin heute auf folgende Neuerung mit Shopware 6.6.3.0 aufmerksam gemacht worden:

Ich mag die grundlegende Idee, dass man keine EntityDefinition mehr braucht und die Felder direkt in der Entity selbst definieren kann.

Ich bin allerdings überhautpt kein Fan von folgendem Absatz:

„With this new pattern, we removed the need for getter and setter methods. The properties are public and can be accessed directly“

In welcher guten OOP sind Attribute direkt aufrufbar?
Getter/Setter haben einige Vorteile:

  • Getter und Setter können eine Validierung enthalten, Felder nicht
  • mit Getter-Methoden kann die Unterklasse der gewünschten Klasse erhalten werden
  • Getter und Setter sind polymorph, Felder sind es nicht
  • Das Debugging/Die Fehlersuche kann viel einfacher sein, da der Breakpoint innerhalb einer Methode und nicht an allen Referenzen des jeweiligen Feldes platziert werden kann
  • Man kann Implementierungsänderungen verbergen

Meinungen der Community zu dem Thema?

Welche Beweggründe gab es seitens Shopware für diese Änderung?

Viele Grüße

Dennis

Ich kann mir sehr gut vorstellen, dass dies von Symfony kommt und nicht von Shopware.

Die Option zum möglichen Verzicht von getter und setter, der kommt von PHP selbst. Dies ist ja nur eine Option und nicht die einzige Möglichkeit.