in2publish Version 10: Volle Kraft voraus für TYPO3 v10

in2publish Version 10: Volle Kraft voraus für TYPO3 v10

Die neue Version 10 des Content Publishers enthält einige wesentliche Neuerungen und wurde speziell für TYPO3 v10 entwickelt. Wie angekündigt haben mit dieser Version den Support für TYPO3 v9 eingestellt. Dadurch erreichen wir mit dem Content Publisher wesentliche Verbesserungen

In diesem Blogpost erfahrt ihr welche Neuerungen der Conent Publisher erfahren hat. Seit einigen Wochen arbeiten wir intensiv der Entwicklung der neuen Versionen von in2publish_core und den dazu gehörenden Extensions in2publish, in2publish_http, in2publish_local, in2publish_native und in2publish_seclib. Die neuen Versionen ermöglichen es uns das Produkt für die Zukunft fit zu machen und Performance, Stabilität und Sicherheit immer weiter zu entwickeln. 

Die neuen Versionen wurden für TYPO3 Version 10 entwickelt. Wenn Sie noch TYPO3 v9 verwenden, sollten Sie ein zeitnahes Update in Betracht ziehen. Mehr über das letzte reguläre Update für TYPO3 v9 erfahrt ihr hier.

in2publish_core 10.0.0 – ein Meilenstein

Wie beschreiben wurde die Unterstützung für TYPO3 v9 entfernt, da diese Version nicht mehr offiziell unterstützt wird. Gleichzeitig konnten wir dadurch einige weitreichende Änderungen vornehmen, wie die Umwandlung von Signal-Slots in Ereignisse, die Verwendung von Dependency Injection und die Deklaration zentraler Komponenten als Dienste.

Events

TYPO3 v10 integriert eine weitere Komponente des Symfony Frameworks, die Event-Komponente. Dies ermöglichte es uns, die klobige Implementierung der Signal-Slots in extbase durch das schnelle und schlanke DI-Container-basierte Event-System zu ersetzen.
Für unsere Benutzer, die auf Signale angewiesen sind, um ihre zusätzliche Veröffentlichungslogik zu implementieren, haben wir eine Abwärtskompatibilitätsschicht für Signale hinzugefügt (nur für Signale und nur für in2publish_core v10). Sie können die alten Signale weiterhin verwenden, müssen aber auf Event-Listener umsteigen, bevor Sie TYPO3 und in2publish_core auf die später erscheinende v11 aktualisieren.
Hier finden Sie eine umfassende Liste aller Signale und der Events, die die Signale ersetzen.
Events machen es nicht nur einfacher, Ihren Code dazu zu bringen, mit dem Content Publisher zu interagieren, sie sind auch viel schneller.

Services

Ein weiteres Feature, das mit TYPO3 v10 eingeführt wurde, ist der Dependency Injection Container, eine weitere Komponente des Symfony Frameworks.
Wir verwenden die Service-Definition, um Faktoren für verschiedene Dienste zu definieren, wie z.B. die lokale und fremde Datenbankverbindung, die nun injizierbar sind. Man braucht also die DatabaseUtility nicht mehr zu verwenden. Bitte beachten: Ein Fehler wird verursacht, wenn eine Verbindung injiziert wird, die nicht verfügbar ist. (Dies bedeutet, dass keine Verbindungen in Klassen injiziert werden dürfen, die immer geladen werden, da dies das Backend in einen unbrauchbaren Zustand versetzt).
Eine andere Möglichkeit ist die dynamische Registrierung von Diensten in der Datei Services.php, die einige Bedingungen aus der Datei ext_tables.php entfernt, wodurch der TYPO3-Bootmechanismus etwas effizienter wird.

Automated testing

Tests sind nur dann sinnvoll, wenn sie tatsächlich ausgeführt werden. Deshalb haben wir unsere Tests so umstrukturiert, dass sie in GitHub-Aktionen ausgeführt werden. Sie werden bei jedem Push in das Repository und täglich auf einer geplanten Basis ausgeführt. Letzteres soll die Kompatibilität mit Bibliotheken von Drittanbietern sicherstellen, die unabhängig voneinander aktualisiert werden.
Der Testlauf für diese Version ist hier zu finden.

weitere Neuerungen

  • Die veraltete Methode modifyConfiguration wurde aus AbstractTask entfernt. Der Task sollte mit der korrekten Konfiguration konstruiert werden.
  • Kommunikationsadapter müssen den Konstruktor nicht mehr implementieren, können aber den Konstruktor für Dependency Injection verwenden. Alle Adapter werden automatisch öffentlich gemacht, so dass keine zusätzliche Konfiguration in der Dienstekonfiguration erforderlich ist.
  • Wir benötigen mindestens doctrine/dbal 2.11.0. Dies entspricht der Mindestanforderung von TYPO3, die bei 2.10 liegt. Doctrine DBAL hat die Art und Weise geändert, wie Abfrageergebnisse abgerufen werden, und wir haben die neue API als unseren Standard übernommen.
  • Typ-Hinweise überall. Alle Parameter, die einen Typ-Hinweis haben können, haben einen erhalten, ebenso wie die Typ-Hinweise der Methodenrückgabe. Bestehender Code kann gegebenenfalls beeinträchtigt werden aufgrund von Verletzungen des Liskov-Substitutionsprinzips, das PHP streng befolgt. Die Aktualisierung des Codes sollte schnell und einfach möglich sein (IDE nutzen) 

in2publish Version 10

in2publish v10 ist nur mit in2publish_core 10.x kompatibel und ist für TYPO3 v10 entwickelt.

Events

in2publish v10 hat die gleiche Abwärtskompatibilitätsschicht für Signale wie in2publish_core. Sie können weiterhin Signale verwenden, müssen diese aber irgendwann ersetzen. Die Abwärtskompatibilitätsschicht wird in in2publish v11 entfernt werden. Die umfassende Liste aller Signale und der Ereignisse, die die Signale ersetzen sind hier zu finden. 

Services

in2publish_core hat es bereits vorgemacht und in2publish geht noch einen Schritt weiter. Wir verwenden die Service-Konfiguration, aber wir wollen trotzdem eine strikte Trennung zwischen den Funktionen, die mit in2publish ausgeliefert werden, beibehalten. Jedes in2publish-Feature hat seine eigene Service-Konfiguration, wodurch wir Seiteneffekte und Konflikte reduzieren können.

in2publish_http 7.0.0

Viel Besonderes gibt es an diesem Release nicht, außer dass die Unterstützung für TYPO3 v9 wie bei den anderen Extensions eingestellt wurde. Diese Version unterstützt daher explizit  in2publish_core v10 und TYPO3 v10.
Außerdem wurde die Debugging-Unterstützung verbessert, was im Wesentlichen bedeutet, dass xdebug-Sitzungen von der CLI weitergeleitet werden.

in2publish local file adapter 1.1.0

Diese Extension ermöglicht es Content Publisher, meinen lokalen Dateispeicher in einem anderen lokalen (Live-)Dateispeicher zu veröffentlichen. Die Version 1.1.0 unterstützt TYPO3 v10 mit in2publish v9 oder v10.

in2publish_native SSH/SCP adapter 1.1.0

Diese Erweiterung bietet Content-Publisher-Kommunikationsadapter, die die Standard-SSH2-Adapter in der Community Edition ersetzen. Diese Adapter verwenden die ssh- und scp-Binärdateien des Betriebssystems, um eine Verbindung herzustellen und Dateien auf das Fremdsystem zu übertragen. DAs Release 1.1.0 supportet TYPO3 v10 mit in2publish v9 oder v10.

Florian Froidevaux

SEO Projekte und Online-Marketing?

Haben Sie Fragen zu SEO und Online-Marketing?

Unser Spezialist Florian Froidevaux hilft Ihnen gerne weiter.

Florian Froidevaux  |  Marketing Manager

TYPO3: Finding pages in mixed mode

In TYPO3, Mixed Mode refers to translated pages that contain content only partially related to the corresponding content in the main language. This is indicated in the backend by an error message. But...

Zum Beitrag

Extbase Extensions: Think extensibility with data, site and language

Today, I have a small request for the TYPO3 extension authors out there: Make sure your extensions are extensible. This will also promote the distribution of the corresponding plugins.

Zum Beitrag

Content Publisher Version 12 (for TYPO3 11 & 12): Faster, more modern and more user-friendly

The new version 12 of the Content Publisher for TYPO3 11 & 12 significantly improves the management and publication of content in TYPO3. The new version brings a number of technological innovations...

Zum Beitrag
happy man working on laptop

SQL: Show all tables sorted by size in descending order

Lately I've been using the SQL command more often to find out which tables in the TYPO3 database are the largest. I've published the snippet once.

Zum Beitrag

TYPO3 12 with CKEditor 5: Styles in a single selection

If you set a link in the RTE in TYPO3, you may have to choose between different link classes, for example to create buttons in the frontend. What's new in TYPO3 12 is that you can select not just one...

Zum Beitrag

Null-Safe Operator in the TYPO3 area

With the introduction of PHP8, problems with undefined arrays or variables in general can arise in many places. Here are a few examples and simple solutions.

Zum Beitrag