TYPO3 14.0 CLI Kommandos: Auto-Completion, Sprach-Helfer und Debugging für professionelle Deployments

Von Roland Golla
0 Kommentar
Surreales Terminal mit TYPO3-Logo zeigt CLI Auto-Vervollständigung

„War das jetzt cache:flush oder flush:cache?“ – Wer kennt diesen Moment nicht? Die Kommandozeile ist mächtig, aber manchmal auch frustrierend. Mit TYPO3 14.0 bekommt ihr endlich die CLI-Features, die euren Entwickler-Alltag spürbar verbessern. Auto-Vervollständigung, neue Sprach-Helfer und Debugging-Tools direkt im Terminal.

Nach über 15 Jahren Erfahrung in Softwarequalität, Open Source und Remote Consulting können wir sagen: Diese neuen CLI-Kommandos sind kein Nice-to-have, sondern ein echter Produktivitäts-Boost für moderne TYPO3-Projekte.

1. Was ist die CLI Auto-Vervollständigung in TYPO3 14.0 und wie aktiviere ich sie?

Die Auto-Vervollständigung für TYPO3 CLI basiert auf der Symfony-Console und ist eines der praktischsten Features in TYPO3 14.0. Statt euch alle Kommandos merken zu müssen, tippt ihr einfach bin/typo3 und drückt Tab – schon seht ihr alle verfügbaren Befehle.

Die Aktivierung erfolgt über den Befehl bin/typo3 completion. Dieser gibt Code aus, den ihr in eure Shell-Konfiguration einfügt:

# Für Bash
eval "$(/path/to/typo3/vendor/bin/typo3 completion bash)"

# Für Zsh
eval "$(/path/to/typo3/vendor/bin/typo3 completion zsh)"

Fügt diese Zeile am Ende eurer .bashrc oder .zshrc ein. Ab dem nächsten Terminal-Start funktioniert die Vervollständigung automatisch.

Pro-Tipp: Die Auto-Completion funktioniert nicht nur für Befehlsnamen, sondern auch für Argumente und Optionen. Bei bin/typo3 redirects:cleanup könnt ihr mit Tab verfügbare Sites und Domains auswählen – das spart Zeit und verhindert Tippfehler.

2. Wie konfiguriere ich Auto-Completion in DDEV und Docker-Umgebungen?

In containerisierten Umgebungen liegt der Teufel im Detail. Die Completion-Konfiguration muss innerhalb des Containers verfügbar sein, nicht auf eurem Host-System.

Für DDEV nutzt ihr die homeadditions:

# .ddev/homeadditions/.bashrc
eval "$(vendor/bin/typo3 completion bash)"

Bei direktem Docker-Setup fügt ihr die Konfiguration in euer Dockerfile oder entrypoint-Script ein:

RUN echo 'eval "$(vendor/bin/typo3 completion bash)"' >> /home/www-data/.bashrc

Consulting-Tipp: Wir empfehlen, die Completion-Konfiguration ins Projekt-Repository aufzunehmen. So profitiert das gesamte Team automatisch davon, ohne dass jeder die Einrichtung manuell vornehmen muss.

3. Wie funktionieren die neuen Sprach-Helfer Commands in TYPO3 14.0?

Die neue Symfony Translate-Integration in TYPO3 14.0 bringt zwei hilfreiche CLI-Kommandos mit, die euch den Überblick über eure Sprachdateien verschaffen.

Mit bin/typo3 language:domain:list erhaltet ihr eine tabellarische Übersicht aller bekannten Sprachdateien und der Anzahl ihrer Labels. Besonders nützlich: Mit dem Argument --deprecated seht ihr alle veralteten Labels, die ihr bei der nächsten Gelegenheit aufräumen solltet.

# Alle Sprachdateien auflisten
bin/typo3 language:domain:list

# Veraltete Labels anzeigen
bin/typo3 language:domain:list --deprecated

# Nach Extension filtern
bin/typo3 language:domain:list --extension=my_extension

Das Gegenstück bin/typo3 language:domain:search ermöglicht die gezielte Suche in Sprachdateien – sogar mit regulären Ausdrücken. Ihr durchsucht dabei nicht nur die Sprachkeys, sondern auch die tatsächlichen Übersetzungstexte.

# Nach Begriff suchen
bin/typo3 language:domain:search "Passwort"

# In bestimmter Sprache suchen
bin/typo3 language:domain:search "password" --locale=de

Beide Commands unterstützen JSON-Output – perfekt für die Integration in Build-Prozesse oder zur automatisierten Dokumentation.

4. Kann ich das Install-Tool-Passwort per CLI setzen und warum ist das sinnvoll?

Ja, und das ist ein Game-Changer für CI/CD-Pipelines. Mit bin/typo3 install:password:set könnt ihr das Install-Tool-Passwort ohne GUI setzen. Das ermöglicht die automatisierte Provisionierung von TYPO3-Instanzen.

# Interaktiv Passwort setzen
bin/typo3 install:password:set

# Automatisch generiertes Passwort
bin/typo3 install:password:set --generate

Für automatisierte Deployments ist das essentiell. Stellt euch vor, ihr rollt eine neue Staging-Umgebung aus – bisher musstet ihr das Install-Tool-Passwort manuell über die GUI setzen oder umständlich in Konfigurationsdateien hacken.

Sicherheitshinweis: Passwörter in Shell-History können ein Risiko sein. Nutzt den interaktiven Modus oder generiert automatische Passwörter, die ihr sicher in einem Secrets-Manager ablegt.

5. Wie lösche ich Cache-Tags gezielt über die Kommandozeile?

Der neue Befehl bin/typo3 cache:flushtags erlaubt granulares Cache-Clearing – ein Feature, das viele von der TYPO3 Console Extension kennen und schätzen.

# Bestimmte Tags löschen
bin/typo3 cache:flushtags --tags=pageId_42,tx_news

# Mit Gruppenfilter
bin/typo3 cache:flushtags --tags=pageId_42 --groups=pages

Der Vorteil gegenüber cache:flush: Ihr löscht nur das, was wirklich gelöscht werden muss. Nach einem Content-Update müsst ihr nicht den kompletten Cache wegwerfen, sondern nur die betroffenen Seiten.

In Produktionsumgebungen mit hohem Traffic macht das einen messbaren Unterschied. Statt dass nach einem Deployment alle Besucher auf einen kalten Cache treffen, bleiben die meisten gecachten Inhalte erhalten.

6. Was ist das AsNonSchedulableCommand Attribut und wann sollte ich es verwenden?

Bisher gab es ein Dilemma: Wolltet ihr das moderne #[AsCommand] Attribut von Symfony nutzen, landete euer Command automatisch im TYPO3 Scheduler als auswählbare Task. Nicht jeder Command gehört dort hin.

TYPO3 14.0 führt das #[AsNonSchedulableCommand] Attribut ein:

<?php
namespace VendorExtensionCommand;

use SymfonyComponentConsoleAttributeAsCommand;
use TYPO3CMSCoreConsoleAttributeAsNonSchedulableCommand;

#[AsCommand(
    name: 'myext:dangerous-cleanup',
    description: 'Performs cleanup - only run manually!'
)]
#[AsNonSchedulableCommand]
class DangerousCleanupCommand extends Command
{
    // ...
}

Typische Anwendungsfälle für AsNonSchedulableCommand:

  • Einmalige Migrations-Scripts
  • Debugging- und Diagnose-Tools
  • Commands mit interaktiver Eingabe
  • Destruktive Operationen, die manuelle Bestätigung erfordern

So behaltet ihr die volle Kontrolle darüber, welche Commands im Scheduler auftauchen und welche nur über die Konsole verfügbar sind.

7. Wie nutze ich Fluid Cache Warmup für schnellere Deployments?

Der neue Befehl bin/typo3 fluid:cache:warmup kompiliert eure Fluid-Templates vor. Das reduziert die Ladezeit nach einem Deployment erheblich, weil die erste Anfrage nicht mehr die Template-Kompilierung anstoßen muss.

# Fluid-Templates vorkompilieren
bin/typo3 fluid:cache:warmup

# Alternativ: Im allgemeinen Warmup enthalten
bin/typo3 cache:warmup

Der dedizierte Fluid-Befehl bietet mehr Optionen und detailliertere Ausgaben als der allgemeine cache:warmup. Für Deployments empfehlen wir die Integration in eure Pipeline:

# GitHub Actions Beispiel
- name: Warmup caches
  run: |
    vendor/bin/typo3 cache:flush
    vendor/bin/typo3 cache:warmup
    vendor/bin/typo3 fluid:cache:warmup

Performance-Tipp: Messt den Unterschied. In unseren Projekten reduziert sich die Time-to-First-Byte nach Deployments typischerweise um 40-60%, wenn die Caches vorgewärmt sind.

8. Welche Debugging-Befehle gibt es für Backend-Module und Routen?

TYPO3 14.0 bringt zwei neue Debug-Commands, die euch einen schnellen Überblick über die Backend-Struktur verschaffen – ohne in Konfigurationsdateien wühlen zu müssen.

bin/typo3 debug:backend:modules zeigt alle registrierten Backend-Module mit Labels, Konfiguration und hierarchischer Struktur:

# Alle Backend-Module anzeigen
bin/typo3 debug:backend:modules

# Output enthält:
# - Modul-Identifier
# - Labels und Beschreibungen
# - Konfigurationsdetails
# - Hierarchie (wie im Backend)

bin/typo3 debug:backend:routes listet alle Backend-Routen mit ihren Modul-Abhängigkeiten:

# Alle Backend-Routen anzeigen
bin/typo3 debug:backend:routes

Diese Commands sind Gold wert beim Debugging von Extension-Konflikten oder wenn ihr verstehen wollt, warum ein Modul nicht dort erscheint, wo ihr es erwartet.

Consulting-Erfahrung: In komplexen Enterprise-Setups mit vielen Extensions sparen diese Debug-Tools Stunden an Fehlersuche. Statt durch dutzende ext_tables.php und Service-Konfigurationen zu scrollen, seht ihr auf einen Blick den Ist-Zustand.

9. Wie integriere ich TYPO3 14 CLI optimal in CI/CD Pipelines?

Die neuen CLI-Features in TYPO3 14.0 sind wie gemacht für moderne DevOps-Workflows. Hier ein bewährtes Pipeline-Setup:

# .github/workflows/deploy.yml
name: TYPO3 Deployment

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.3'

      - name: Install Dependencies
        run: composer install --no-dev --prefer-dist

      - name: Deploy
        run: |
          ssh ${{ secrets.SSH_USER }}@${{ secrets.SERVER }} << 'EOF'
            cd /var/www/html
            git pull
            composer install --no-dev
            vendor/bin/typo3 cache:flush
            vendor/bin/typo3 database:updateschema
            vendor/bin/typo3 cache:warmup
            vendor/bin/typo3 fluid:cache:warmup
          EOF

Wichtige Punkte für stabile Pipelines:

  • Nutzt --no-interaction für alle Commands in automatisierten Umgebungen
  • Setzt TYPO3_CONTEXT=Production über Umgebungsvariablen
  • Plant für den Fall, dass die Datenbank nicht erreichbar ist (Build-Steps vs. Deploy-Steps)

Das Install-Tool-Passwort per CLI zu setzen ermöglicht vollständig automatisierte Instanz-Provisionierung – ohne manuelle Zwischenschritte.

10. Welche Best Practices gibt es für TYPO3 CLI in der Team-Entwicklung?

CLI-Konsistenz im Team ist entscheidend für reibungslose Zusammenarbeit. Hier unsere Empfehlungen aus der Praxis:

Projekt-spezifische Shell-Scripts: Legt häufig genutzte Kommando-Kombinationen als Shell-Scripts im Repository ab:

#!/bin/bash
# scripts/reset-dev.sh
vendor/bin/typo3 cache:flush --group=all
vendor/bin/typo3 database:updateschema
vendor/bin/typo3 cache:warmup
echo "Development environment reset complete."

Composer-Scripts für einheitliche Befehle:

{
  "scripts": {
    "typo3:setup": [
      "@php vendor/bin/typo3 setup --no-interaction",
      "@php vendor/bin/typo3 cache:warmup"
    ],
    "typo3:test": [
      "@php vendor/bin/typo3 cache:flush",
      "@php vendor/bin/phpunit"
    ]
  }
}

Dokumentation der Custom Commands: Jede Extension mit eigenen CLI-Commands sollte diese im README dokumentieren – inklusive Beispielaufrufen und typischen Use Cases.

Die Auto-Completion-Konfiguration ins Repository aufzunehmen (z.B. über DDEV homeadditions) stellt sicher, dass neue Team-Mitglieder sofort produktiv arbeiten können.

Unterstützung für eure TYPO3-Projekte

Ihr plant die Migration auf TYPO3 14.0 oder wollt eure Deployment-Prozesse modernisieren? Mit über 15 Jahren Expertise in Softwarequalität und Remote Consulting unterstützen wir euch bei:

  • TYPO3 14.0 Upgrade-Planung und -Durchführung
  • CI/CD Pipeline-Setup mit optimierter CLI-Integration
  • Custom Command-Entwicklung für projektspezifische Anforderungen
  • DevOps-Workshops für eure Teams

Kontakt: roland@nevercodealone.de

Wir liefern keine theoretischen Konzepte, sondern praxiserprobte Lösungen, die in Production funktionieren.

Fazit: CLI-Produktivität auf neuem Niveau

TYPO3 14.0 hebt die Kommandozeilen-Erfahrung auf ein neues Level. Auto-Vervollständigung, Sprach-Helfer und Debugging-Tools machen den Alltag spürbar angenehmer. Die Möglichkeit, das Install-Tool-Passwort per CLI zu setzen, öffnet Türen für vollständig automatisierte Deployments.

Besonders die AsNonSchedulableCommand-Markierung und die granulare Cache-Steuerung über Tags zeigen, dass das TYPO3 Core-Team die realen Anforderungen moderner Entwicklungs-Workflows versteht.

Unser Tipp: Nehmt euch die Zeit, die Auto-Completion einzurichten. Die investierten 5 Minuten zahlen sich innerhalb einer Woche mehrfach aus.

Never Code Alone – Gemeinsam für bessere Software-Qualität!

0 Kommentar

Tutorials und Top Posts

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu