OPUS4 / framework

OPUS 4 Database Implementation
Other
2 stars 7 forks source link

Coding Style Check auf Laminas Style umstellen #162

Open j3nsch opened 3 years ago

j3nsch commented 3 years ago

Laminas kommt mit einem aktualisierten Coding Style. Wir haben bisher den ZF1-Style verwendet und sollten jetzt auf den Laminas Style umsteigen. Ich denke das ist besser, als einen eigenen Style zu definieren. Bei Bedarf muss der Laminas-Style angepasst werden.

j3nsch commented 3 years ago

Ich werde mal schauen was der Checker mit dem Laminas-Style über unseren aktuellen Framework-Code sagt.

j3nsch commented 3 years ago

Was mich an der neueren Version des Checkers irritiert ist, dass es viel länger dauert, fast drei Minuten für das Framework. Na gut, vielleicht ist er ja wesentlich gründlicher.

j3nsch commented 3 years ago

Ich erhöhe die Verbosity, weil der neue Checker sonst gar nichts mehr ausgibt und weil es nun Minuten dauert, weiß ich immer nicht ob er noch läuft oder irgendwo hängen geblieben ist.

j3nsch commented 3 years ago

Ich habe die Tests jetzt erst einmal ausgeklammert und bei vielen alten Klassen das Checking abgeschaltet (phpcs:disable in Kommentaren). Der Aufwand für die Bereinigung wäre zu groß gewesen für Klassen, die verschwinden werden. Insgesamt war es komplizierter als erwartet und es gab einige Fallen im alten Code, unter anderem dynamisch, mit eval, erzeugte Mock-Klassen für Tests.

Es hat sich trotzdem gelohnt. Der neue Style ist wesentlich strikter und das ist auch gut so. Bei neuen Klassen wird der Check aktiviert sein. Bei den alten Klassen muss die Deaktivierung wieder verschwinden, wenn klar ist, ob die Klasse weiter verwendet wird.

Dieses Ticket kann zu gemacht werden, wenn die Deaktivierungsstatements verschwunden sind.

j3nsch commented 3 years ago

Nach den Änderungen habe ich jetzt noch 12 gebrochene Tests. Bei anderen Tests waren die Ursachen unter anderem, das mit der Umstellung von is_null() auf === null in Kombination mit and oder or die Konditionen nicht mehr wie erwartet ausgewertet wurden. Beides and und or sind im neuen Style verboten. Weak-Vergleiche, also == und != sind auch nicht mehr erlaubt. Der OPUS 4 Code bricht aber an einigen wenigen Stellen, wenn ein strikterer Vergleich verwendet wird, also === oder !==. Da müssen unter Umständen explizite Type-Castings eingeführt werden.

Ich analysiere jetzt noch die letzten Tests und dann muss der Code übernommen werden bevor noch mehr Änderungen in anderen Branches dazu kommen. Im Augenblick sind auch die Checks für die neuen Klassen in Db2 deaktiviert. Nach dem Merge, mit dem neuesten Code für diese Klassen, müssen die Checks wieder aktiviert und alles notwendige gefixt werden.

j3nsch commented 3 years ago

Die Tests werden jetzt zum größten Teil auch wieder geprüft. Die @expectedException Annotationen für Unit Tests wurden entfernt und durch die, in neueren PHPunit Versionen genutzte, Funktion, setExpectedException, ersetzt.