Beiträge aus der Kategorie: TYPO3 CMS

Über den Weg Gelaufenes in KW12

Diese Woche lag im Zeichen des Frühlingsanfangs und irgendwie gab es wenig Artikel, die ich mir überhaupt zum Lesen markiert habe. Lag vielleicht aber auch daran, dass ich wenig dazu kam, meine RSS-Feeds zu scannen.

  • Wunschliste für die Integration von composer in TYPO3 Alexander Schnitzler hat auf Github einige Zeilen geschrieben, wie er sich selber die Integration von composer für TYPO3 vorstellt. Die Kommentare sind lesenswert, weil sie noch mehr Punkte aufgreifen.
  • Karabiner-Elements Tool, mit dem ich die Media-Tasten von macOS auf meine Pok3r-Tastatur legen konnte. Endlich.
  • Interview mit Donald Trump mit dem Time-Magazin Auf der einen Seite total faszinierend, wie so jemand Präsident eines riesengroßen und vor allem bunten Staat werden kann. Auf der anderen Seite beängstigend.
  • OpenEmu - Emulator für diverse Systeme Auf der Suche nach einem SNES-Emulator für den Raspberry Pi drauf gestoßen, ausprobiert und für gut befunden. Alte Spiele auf macOS mit dem PlayStation-Controller spielen. Wunderbar.
  • RetroPie - Emulator für den Raspberry Pi Ich habe es noch nicht ausprobiert, aber das scheint genau das zu sein, was ich für den Mini-Rechner benötige. Wenn das wirklich mit einem PlayStation-Controller zu koppeln ist, wird mein Sohnemann das hoffentlich wie ich hervorragend finden.
  • Der letzte Brand Faszinierendes Interview eines Workaholic und in Perfektion versessenen Mannes, der nicht zum ersten Mal alles hinschmeisst, weil es nur noch betriebswirtschaftliche Maximierung für seine Tätigkeit gibt. Nicht nur, dass ich Monkey 47 immer noch allen anderen Gins bevorzuge, weil er für mich die schönste, fruchtig-würzige Geschmacksnote hat, ich würde gerne mal so einen Williams aus seiner Brennerei probieren. Leider unbezahlbar.

Über den Weg Gelaufenes in KW8

Die letzte Woche war geprägt von Arbeit, selbst gemachtem Freizeitstress und irgendwie viel zu wenig Zeit zum Internet durchforsten oder Podcast hören. Von daher fällt die Liste recht unspektakulär und kurz aus.

  • GitKraken Ausprobiert und für gut befunden, auch wenn ich eigentlich keinen Standalone-Git-Client brauche, da mir der eingebaute Client in PhpStorm reicht. Ich werde dem Kraken aber die nächste Woche mal an seiner Stelle verwenden, vielleicht hat er ja das ein oder andere Feature, was mir mehr zusagt.
  • Anleitung zur Integration des CKEditors in TYPO3 Ich habe leider noch überhaupt keine Zeit gehabt, mir den neuen WYSIWYG-Editor von TYPO3 anzuschauen, obwohl ich den alten RTEHtmlArea mit aller Inbrunst hasse. Auch mal für nächste Woche vornehmen.
  • Cloudbleed Das schlug ja ein wie eine Bombe letzte Woche, auch wenn der nächste Punkt in der Liste viel schlimmer ist. Trotzdem hatte Cloudflare monatelang einen Fehler in seinem SSL-Proxy, der nicht nur den angeforderten SSL-Traffic zum Client auslieferte, sondern auch Teile des SSL-Verkehrs anderer User. Wenn da jemand sich die Mühe gemacht hat über diesen Zeitraum brav mitzusniffen, dürfte jemand jetzt über eine Menge Rohdaten mit Passwörtern und Kreditkarten-Informationen verfügen.
  • Zwei gleiche Hashes darf es nicht geben Ich habe es jetzt nicht überprüft, aber in der dunklen Erinnerung haben früher ziemlich viele Systeme ihre Hash-Verfahren auf SHA1 basieren lassen. Seit Jahren ist dies aber auf dem absteigenden Ast und wird durch andere Verfahren wie RSA ersetzt. Zum Glück.
  • Ist Zelda 1 das bessere Zelda? Ein Video, in dem erörtert wird, dass das erste Zelda das bessere Zelda ist. Weil es in erster Linie den Spieler nicht an die Hand nimmt, wie es fast jedes aktuelle Spiel macht. Ich sollte mir vielleicht doch einen NES Mini besorgen, um zu testen, ob das stimmt. Oder mal schauen, ob es das noch für den 3DS gibt. The Legend of Zelda habe ich zu meiner Schande noch nie gespielt.

Über den Weg Gelaufenes in KW7

An dieser Stelle fange ich mal an, meine Pocket-Liste zu entschlacken, in dem ich erwähnenswerte Sites in solchen Artikeln wochenweise zusammenfasse. Vielleicht gibt es ja den ein oder anderen, der auch gefallen an manchen Artikeln findet. Mich selber soll es dazu bringen, Dinge, die ich mir für später merken möchte, auch wirklich abzuarbeiten. Und sei es nur, sie einfach ungelesen zu löschen.
Den Anfang machen folgende Artikel:

Der wirklich beste Weg, TYPO3-Projekte zu verwalten

Anfang des Sommers hatte ich in einem Artikel meinen ungefähren Aufbau erklärt, wie ich komplexe TYPO3-Projekte, also komplette Installationen von einer oder mehreren Websites verwalte, an denen mehrere Entwickler gleichzeitig arbeiten. Gleichzeitig habe ich im Sommer diesen Aufbau auf den auf seine Funktionsweise überprüft und geschaut, was man verbessern kann. Und so langsam habe ich mein Setting verfeinert, dass ich zufriedener als vorher bin.

Meinen Aufbau, dass ich Extensions per Symlink unterhalb von typo3conf/ext einklinke, die außerhalb des eigentlichen Document-Roots liegen. Das hat sich schon immer als fehlerhaft erwiesen, da TYPO3 nicht wirklich den Symlinks folgt, was darin ausartet, dass Controller nicht geladen werden. Da die meisten selber entwickelten Extensions sowieso kunden- bzw. projektbezogen sind und selten in mehreren Projekten gleichzeitig verwendet werden, werden diese Erweiterungen jetzt direkt per git unterhalb von typo3conf/ext geklont, das Verzeichnis aber aus dem Gesamtprojekt per gitignore ausgeklammert. Die eigentliche TYPO3-Installation wird weiterhin von composer verwaltet, mit dem die üblichen "normalen" Extensions aus dem TER gezogen werden.

Auf einem Testsystem, das grundlegend in gleicher Weise aufgebaut ist wie das Livesystem werden per composer dann nicht nur die TER-Extensions, sondern auch die selber entwickelten Extensions eingebunden. Das geht wunderbar von der Hand und ermöglicht auch die Kontrolle über den Quellcode auf dem Testsystem, da kein Entwickler mehr direkt Code auf dem Testsystem ändern kann bzw. es beim nächsten Update auffällt. Und es dann auf die Finger gibt.

Im nächsten Schritt werden sich jetzt noch Automatic deployment auf Datei- und vor allem Datenbankebene vorgeknöpft, um noch einen Rattenschwanz abzuschlagen, um dem man sich immer kümmern muss. Zeit, die einem zum Entwickeln fehlt und Vorgänge, die immer fehlerbehaftet sein können.

Der beste Weg, um TYPO3-Projekte zu verwalten

Eine anständige Versionsverwaltung von Quellcode ist meiner Meinung nach einer der Grundpfeiler, um funktionalen und vor allem fehlerfreien Code zu schreiben. Vor allem im Team mit mehreren Entwicklern und Projektmanagern.
Aber wie baut man auf Dateiebene ein komplettes TYPO3-Projekt auf? Wie verwaltet man Extensions aus dem TER? Wie bindet man Eigenentwicklungen ein? In den letzten Jahren habe ich für meine Projekte einen entsprechenden Aufbau und Ablauf entwickelt, den ich gerade auf den Prüfstand stelle, um ihn zu verbessern. Verbessern kann man ja immer.

Das gesamte Projekt basiert auf composer und bindet nicht nur die TYPO3-Sourcen, sondern auch alle per TYPO3 Extension Repository Composer Repository erreichbaren Extensions ein. Der Code, der dadurch eingebunden wird, wird per gitignore aus dem Projekt-git ausgeschlossen, Erweiterungen, die nicht per composer installiert werden können, landen aber dann doch in der Versionsverwaltung. Damit alle Entwickler mit dem gleichen Versionsstand arbeiten.

Nur was ist mit den Erweiterungen, die man selber entwickelt und die nicht im TER landen? Man könnte sie natürlich auch per composer und einer eigenen Repository-Verlinkung integrieren. Jede Erweiterung wird in einem separaten git versioniert und in der composer.json lassen sich eigene Repositories verlinken und per require einklinken. Nur heißt das auch, dass man Entwicklungen in den Extensions nicht in diesem Projekt vornehmen kann. Von daher finde ich das zwar den eigentlich konsequenten Weg, der aber so nicht praktikabel umgesetzt werden kann. Man müsste nach Änderungen die Änderungen per composer einladen, um die "Auswirkungen" im Projekt zu sehen und zu testen. Mühsam und zeitaufwendig.

Ich bin dazu übergegangen, die Erweiterungen per Symlink unterhalb von web/typo3conf/ext einzubinden. Der Code liegt außerhalb des Projekt-Verzeichnisbaums in seiner eigenen git-Struktur. Entwickelt wird dann in einer separaten IDE-Instanz. So sind Änderungen in der Erweiterung sofort im eigentlichen TYPO3-Projekt sichtbar, die Repositories aber voneinander getrennt.

Nur bin ich mir nicht mehr so sicher, dass es der beste Weg ist, ein komplettes Projekt zu verwalten. Und ihr so?