OPUS4 / framework

OPUS 4 Database Implementation
Other
2 stars 7 forks source link

Get-Funktionen sollen Wert in, zum Model-Feld passende, PHP Typen zurück liefern #321

Open j3nsch opened 1 year ago

j3nsch commented 1 year ago

Funktionen wie getId, getPartOfBibliography oder getVisible liefern alle Strings zurück, wenn die Werte aus der Datenbank ausgelesen wurden. Die Funktion getId sollte in der Regel ein int Wert liefern. Boolesche Felder, wie Visible sollten true oder false zurück liefern. Die Rückgabewerte sollten in ihrem Typ den Erwartungen entsprechen, damit sie mit PHP 8 auch zuverlässig strikt mit anderen Werten verglichen werden können.

Im Augenblick gibt es viele Probleme mit dem Code und PHP 8, weil auf einmal zum Beispiel IDs als Strings mit IDs als Integers verglichen werden und auf einmal die gleiche Zahl nicht mehr als identisch gemeldet wird, weil sich die Typen unterscheiden.

j3nsch commented 1 year ago

Die Field-Klasse muss um ein Type-Property ergänzt werden und dieses in der getValue-Funktion berücksichtigt werden. Als Default wird der Wert einfach so zurück gegeben wie bisher. Ist ein Typ für ein Feld definiert, dann wird der Wert vor der Rückgabe in den entsprechenden Typ umgewandelt.

Boolesche Felder, sollten im Augenblick weiterhin 0 und 1 als Integers zurück liefern. Das kann später in true und false geändert werden, aber bisher wird an vielen stellen auf 0 und 1 geprüft und eine Änderung würde sich auch auf die Ausgabe im XML auswirken. Gegebenenfalls sollte für die spätere Umstellung ein Issue angelegt werden.

j3nsch commented 1 year ago

In der Doctrine basieren Umsetzung ist zu erwarten, dass die Rückgabewerte ohne zusätzlichen Aufwand mit den korrekten Typen zurück gegeben werden.