WSC 5.3 Der für mich noch „perfektere“ Workflow

  • In diesem Eintrag möchte ich einen Einblick geben, wie mein Workflow innerhalb der Entwicklung ist.

    Dieser Eintrag ist eine Neufassung des Beitrags Mein "perfekter" Workflow aus dem Jahre 2016. Damals fing ich mit den Worten an, dass der für mich perfekte Workflow nicht der Perfekte für jemand anderen sein muss. Versteht diesen Beitrag daher gerne als Inspiration, denn kein Workflow ist perfekt und sollte ständig hinterfragt und verbessert werden.


    1 XAMPP

    Meine lokale Installation des WoltLab Suite Cores (WSC) befindet sich in einer XAMPP Umgebung. Einfach und schnell zu starten ohne große Einrichtungen ermöglicht XAMPP einen schnellen Start zur Entwicklung. Von Haus aus bringt XAMPP auch phpmyadmin mit, womit ebenfalls recht zügig die Datenbank in einer Oberfläche bedienen und bearbeiten kann. Einziger Nachteil an XAMPP ist, dass man bei einer Versionsänderung von PHP nicht mal eben die PHP Version ändern kann, sondern das komplette Programm am besten deinstalliert und neu aufsetzt.

    Der Aufbau meiner htdocs sieht folgendermaßen aus:

    • plugins: Dies ist ein Sammelordner für meine Plugins. In Unterordnern befinden sich die Plugins getrennt nach Versionen (WSC 5.3, WSC 5.2 etc.), um so die einzelnen Versionsstränge gut und einfach voneinander getrennt zu bekommen. Der nachfolgende Aufbau ist in allen Ordnern gleich: Paketbezeichner eines Plugins = Name des Ordners, wo drin alle Plugins in ihrer Rohfassung liegen, um diese schnell und einfach bearbeiten zu können.
    • Neben dem "plugins" Ordner befindet sich in der htdocs bei mir verschiedene Installationen zu den einzelnen WSC Versionen. So existiert dort eine Installation für das WSC 5.3, für das WSC5.2 etc.
    • Darüber hinaus befinden sich zwei kleine Helferlein in der htdocs, auf die ich in meinem täglichen Arbeiten nicht verzichten möchte. Der "WCF Package Builder" und "Dateiinhalte durchsuchen".


    2 WCF Package Builder

    Das Programm habe ich bereits in meinem alten Beitrag beschrieben. Hieran hat sich bis heute nichts geändert. Es ist auch nach wie vor unter dem WSC 5.3 kompatibel und leistet mir gute Dienste.


    3 Dateiinhalte durchsuchen

    Ein immer wiederkehrendes Problem ist, dass man Textketten aus sehr vielen Dateien suchen möchte. Gründe können unterschiedlicher Natur sein. Eine API ändert sich, man möchte schnell etwas nachschlagen oder viele andere Möglichkeiten. Aus diesem Grunde habe ich mich irgendwann auf die Suche begeben und ein kleines (Wirklich sehr klein) Tool gefunden, was dieser Aufgabe nachkommt: Dateinhalte durchsuchen. Dieses Programm ist nicht überladen, sondern dient wirklich nur den Zweck schnell alle betroffenen Dateien zu finden, wo die gewünschte Zeichenkette vorkommt. Der perfekte kleine Helferlein.


    4 GIT/Bitbucket/Github

    Nach wie vor ist GIT wohl die Versionsverwaltung schlecht hin. Meine damaligen Beweggründe und Nutzung von Bitbucket sind unverändert und eine Änderung strebe ich nicht an. Einzige Änderung an diesem Punkt, ist, dass ich die Synchronisation der Repros nicht mehr mit TortoiseGIT vornehme, sondern mir hierfür ein einfaches Batch Script geschrieben habe. Der Clou an den Batch Script ist, dass er mir alle meine Repros automatisch durch geht, sämtliche Änderungen in allen Projekten committed, anschließend den Ordner löscht und mir immer die aktuellste Version wieder herunterlädt. So vergesse ich keine Änderung hochzuladen, habe immer die aktuellste Version meiner Projekte und bin so rundum glücklich. Als besonderes extra habe ich auf Bitbucket ein Repro, in dem u.a. auch dieses Batch Script habe. Ändere ich also etwas an der Datei auf meinem PC, aktualisiert die Datei sich im Prinzip selbst auf Bitbucket und aktualisiert sich im Endeffekt bei der nächsten Ausführung auf meinem Laptop selbst. Falls dies jemand nutzen möchte, hier der Beispielcode:



    5 VSCode

    VSCode ist ein freier Quelltext-Editor von Microsoft. Damit könnte man das ganze Thema abhacken, aber nein, das ist so nicht ganz wahr. VSCode ist der Traum all meiner Träume und noch vieles mehr. Wer behauptet, eine kostenlose IDE kann nichts, der täuscht sich. Der Editor ist schnell geladen und bringt ganz nebenher noch einen Marktplatz mit, in dem man für alles, aber auch wirklich alles, schöne Erweiterungen finden kann, um so für sich seine IDE komplett so herzurichten, wie man sie benötigt, ohne sie am Ende zu überladen. Ich hab hier schon ganze Nachmittage verbracht und war in einem "Kostenlosen Shoppingrausch" gefangen. Ich möchte euch an dieser Stelle auch die für mich 5 wichtigsten Erweiterungen kurz präsentieren, damit ihr seht, das wirklich alles hiermit geht:


    PHP Intelephense

    Mit PHP Intelephense hat man die Möglichkeit, sich innerhalb der Entwicklungsumgebung bereits die wichtigsten PHP Unterstützungen ins Boot zu holen. Live Syntaxchecker, ungenutzte Variablendefinitionen, ungenutzte Namespaces werden angezeigt etc. Apropos namespaces: Über die Einstellung Intelephense › Environment: Document Root könnt ihr den Dateipfad zum WSC angeben, um so alle Klassen automatisch einzulesen. So hat man auch eine Autovervollständigung von Funktionen, bekommt die Kommentare angezeigt u.v.m.


    Deploy (Reloaded)

    Mit dieser Erweiterung ist es möglich, dass Dateien automatisch verschoben werden. Klingt jetzt erst mal nicht so spannend, aber ich nutze es dafür, dass bei jeder Speicherung meiner Datei, die Datei automatisch in das Installationsarchiv des WSC kopiert wird. So habe ich sofort nach dem Speichern der Datei die Änderungen in der jeweiligen Installation meiner lokalen Umgebung. Als Beispiel: Die Datei C:\xampp\htdocs\plugins\wsc5.3\de.yourecom.example.5.3\files\lib\data\example\Example.class.php wird mir also auch direkt in das Verzeichnis C:\xampp\htdocs\wsc5.3\example\lib\data\example\Example.class.php kopiert. Schön ist auch, dass man für verschiedene Projekte unterschiedliche Pfade angeben kann. Auch innerhalb eines Projektes kann man verschiedene Ziele angeben. Für das Beispiel des WSC: Ich kann für files, templates und acpTemplates drei unterschiedliche Ziele angeben. Anbei erhaltet ihr auch die aktuell genutzte Konfiguration für die Erweiterung: settings.json


    PHP Snippets

    Mittels Snippets hat man die Möglichkeit, mit einem Schlagwort ganze Codezeilen generieren zu lassen. So hab ich früher jedes Mal nachsehen müssen, wie z.B. der komplette Quellcode für eine UPDATE Anweisung im WSC lautet (Dateinihalte durchsucen lässt grüßen). Durch die Snippets gebe ich aber nur noch ein Schlagwort in den Editor ein und erhalte dazu das komplette PHP Grundgerüst. Auch die Einstellunggen hierfür möchte ich euch nicht vorenthalten. Evt. ist hier ja auch das Richtige für dich dabei?

    php.json


    PHP Namespace Resolver

    Formatiert mir beim Speichern die Namespaces in alphabetisch aufsteigender Reihenfolge. Sieht im Quellcode einfach schöner aus.


    Auto Rename Tag

    Eine kleine Erweiterung, die automatisch bei Änderungen von HTML Elementen den zu schließenden HTML Tag mit ändert.


    5.1 Sonstiges


    Neben den hier kurz vorgestellten Erweiterungen gibt es noch einen Haufen anderer, die man gut gebrauchen kann. Erweiterungen für Smarty Syntax, Erweiterungen um auf Knopfdruck Strings GROß ZU SCHREIBEN, Minifizierungserweiterungen für JS, alphabetische Sortierung von markierten Zeilen... Ich hatte bisher noch keinen Wunsch, der mir von dem VSCode Marktplatz ausgeschlagen wurde.


    6 Abschluss

    Auch wie 2016 sei gesagt: Solange man glücklich ist mit dem, was man tut, sollte man dies auch weiterhin so machen. Es gibt nicht immer ein richtig oder falsch, sondern meist ist es eine Geschmacks- oder Gewohnheitssache. Manchmal sollte man auch einfach etwas Neues ausprobieren, um mal wieder einen Blick über den Tellerrand zu werfen. Schaden wird so etwas nicht. Entweder entdeckt man etwas schönes Neues oder man merkt, wie gut man es bisher mit dem Workflow xyz gehabt hat. Egal wie, es hat am Ende nur einen Vorteil.


    Ihr habt Fragen oder Anregungen? Lob oder Kritik? Lasst es mich doch durch einen Kommentar von euch wissen!

Share