Open j3nsch opened 3 years ago
Ich werde mal schauen was der Checker mit dem Laminas-Style über unseren aktuellen Framework-Code sagt.
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.
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.
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.
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.
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.
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.