You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wir nutzen in einigen etwas komplexeren Projekten von yForm hauptsächlich yORM für den Zugriff auf Daten. Im Rahmen der Entwicklung sind einige Klassen entstanden, welche yForm so erweitern, dass auch Tabellen mit zusammengesetzten Primärschlüsseln oder VARCHAR Primärschlüsseln unterstützt werden.
Um alle Komponenten von yForm kompatibel miteinander zu halten, wird die Funktion private static function modelToTable(): string; überschrieben, um Zugriff auf die private Variable private static array $modelToTable = []; zu erhalten.
Durch die Deklaration der Methode modelToTable() als final gibt es keine Möglichkeit mehr, die Variable $modelToTable zu beeinflussen.
In einer gewöhnlichen OOP Umgebung wäre das nicht weiter schlimm, da man die verwendete Klasse mit dem final Keyword einfach durch eine eigene Klasse ersetzen würde. Leider bietet yForm nicht, anders also zum Beispiel die PDO mit PDO::ATTR_STATEMENT_CLASS für Statements, die Möglichkeit eine alternative Klasse anzugeben, welche zum Erzeugen von Datasets genutzt werden soll.
Ein Update auf Version 4.2.0 versetzt ein betroffene Projekte daher in einen Fehlerzustand, der sich nur durch ein Downgrade beheben lässt. Eine Änderung der Signatur einer protected Method auf final würde ich in einer einer Minor-Version auch nicht erwarten.
Den Wunsch, die Programmierung von yForm weiter zu sichern und zu festigen, verstehe ich. Allerdings ist auch eine der Stärken von Redaxo, dass erfahrene Entwickler das System sehr flexibel anpassen können, was durch diese Änderung stark eingeschränkt wird.
Eine Öffnung der API, um einfacher die Funktionalität den eigenen Bedürfnissen anzupassen, würde ich begrüßen. Eventuell ist auch eine Diskussion nötig, um unterschiedliche Meinungen einzuholen.
Wie vielleicht aus #1438 und #1437 ersichtlich, wird recht ausgiebig Gebrauch von yORM gemacht und auch angepasst, wenn Funktionalität vorhanden ist.
The text was updated successfully, but these errors were encountered:
Wir nutzen in einigen etwas komplexeren Projekten von yForm hauptsächlich yORM für den Zugriff auf Daten. Im Rahmen der Entwicklung sind einige Klassen entstanden, welche yForm so erweitern, dass auch Tabellen mit zusammengesetzten Primärschlüsseln oder VARCHAR Primärschlüsseln unterstützt werden.
Um alle Komponenten von yForm kompatibel miteinander zu halten, wird die Funktion
private static function modelToTable(): string;
überschrieben, um Zugriff auf die private Variableprivate static array $modelToTable = [];
zu erhalten.Durch die Deklaration der Methode
modelToTable()
alsfinal
gibt es keine Möglichkeit mehr, die Variable$modelToTable
zu beeinflussen.In einer gewöhnlichen OOP Umgebung wäre das nicht weiter schlimm, da man die verwendete Klasse mit dem
final
Keyword einfach durch eine eigene Klasse ersetzen würde. Leider bietet yForm nicht, anders also zum Beispiel die PDO mitPDO::ATTR_STATEMENT_CLASS
für Statements, die Möglichkeit eine alternative Klasse anzugeben, welche zum Erzeugen von Datasets genutzt werden soll.Ein Update auf Version 4.2.0 versetzt ein betroffene Projekte daher in einen Fehlerzustand, der sich nur durch ein Downgrade beheben lässt. Eine Änderung der Signatur einer
protected
Method auffinal
würde ich in einer einer Minor-Version auch nicht erwarten.Den Wunsch, die Programmierung von yForm weiter zu sichern und zu festigen, verstehe ich. Allerdings ist auch eine der Stärken von Redaxo, dass erfahrene Entwickler das System sehr flexibel anpassen können, was durch diese Änderung stark eingeschränkt wird.
Eine Öffnung der API, um einfacher die Funktionalität den eigenen Bedürfnissen anzupassen, würde ich begrüßen. Eventuell ist auch eine Diskussion nötig, um unterschiedliche Meinungen einzuholen.
Wie vielleicht aus #1438 und #1437 ersichtlich, wird recht ausgiebig Gebrauch von yORM gemacht und auch angepasst, wenn Funktionalität vorhanden ist.
The text was updated successfully, but these errors were encountered: