Open datengraben opened 1 year ago
Also die OptionsArray hätte ich sowieso gerne aus den Includes raus, spätestens ab Merge von #1161 wäre das auch mit drin. Bei den anderen bin ich mir nicht sicher.
Diese Codesniffer-Sachen sind glaube ich auf meinem Mist gewachsen und können da gerne wieder herausgenommen werden. Ich bin da nicht so ganz firm in der Sache, wenn du @datengraben da ne bessere Lösung hast, gerne.
Aktuell haben wir Konfigurationen für dev-tools wie PHPunit und PHP-CodeSniffer im Projekt eingecheckt. Aber wenn wir die Tools verwenden müssen wir die Binaries manuell runterladen und dann auch manuell aufrufen. Die Abhängigkeit zu den Tools können wir aber auch über composer mit
require-dev
und dann einen Aufruf des Tools unterscripts
abbilden. Zum Beispiel wie yoast/wp-seo oder woocommerce/woocomerce das tun.Damit verringert sich der Setup- und Dokumentation-Aufwand für das Plugin für Einrichtung und Verwendung der Standard-Tools, da alles bereits in einer interpretierbaren composer.json liegt und damit auch ausführbar ist.
Ein Problem steht aber noch im Weg: Die Composer.json enthält autoload Direktiven zu mehreren Dateien im
includes
Ordner. Diese Dateien scheinen mir Legacy-Code zu enthalten, welcher hauptsächlich infunction
-Blöcken definiert ist. Der dort definierte Code benötigt an ein oder anderer Stelle Methoden aus dem Wordpress-Core, welche aber zur autoload-Zeit noch nicht geladen sind, daher kann ich Befehle die überrun-script
definiert sind nicht ausführen und erhalten folgenden Fehler (welcher auf die noch nicht geladenen Wordpress-Core Sources hinweist):Da sehe ich zwei Probleme die zusammenhängen:
includes
Ordner enthält dabei wichtigen Code für verschiedene Teile der Codebase. Der Code scheint aber nicht nach best-practices im Projek definiert zu sein (woocommerce und yoast scheinen beide pro Datei Klassen zu definieren aber keine public functions)Mögliche Fixes:
inlcudes
zu platzieren.Hat jemand eine Idee oder kennt vielleicht eine bessere Lösung?