Der beste Leitfaden zum TYPO3 Composer

Die TYPO3 Community liebt TYPO3 composer. Lernen Sie TYPO3 Composer vom Anfänger bis zum Fortgeschrittenen für produktive TYPO3 Entwicklung & Deployment.

Der beste Leitfaden zum TYPO3 Composer

FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.

Die TYPO3 Community liebt den Composer, Sie auch? In der modernen TYPO3-Entwicklung & Deployment ist ein Composer ein wichtiges Werkzeug für produktives und qualitativ hochwertiges Arbeiten. Hier möchte ich eine einfache Anleitung vom Anfänger bis zum fortgeschrittenen TYPO3-Komponisten schreiben.

Composer - Ein Abhängigkeitsmanager für PHP. Es ist ein von der PHP-Community weithin akzeptiertes Tool. Mögen Sie es, wie UNIX-basierte Systeme Software mit einfachen Befehlen auf der CLI installieren und aktualisieren? Wie `apt-get install package`, so auch in TYPO3 `composer install extension`. Dann werden Sie auch den TYPO3 Composer mögen, um Ihr TYPO3 und auch Extensions einfach zu installieren und zu aktualisieren.

 

 

Ein kreativer Künstler arbeitet an seiner nächsten Komposition, weil er mit der vorherigen nicht zufrieden war - Dmitri Schostakowitsch

 

Was/Warum/Wie ist der Composer?

Definition von Komponist

Die offizielle Definition: "Composer ist ein Werkzeug zur Verwaltung von Abhängigkeiten in PHP. Es erlaubt Ihnen, die Bibliotheken zu deklarieren, von denen Ihr Projekt abhängt, und es wird diese für Sie verwalten (installieren/aktualisieren)."

Dieser Gedanke ist nicht neu und der Composer ist fest abgeleitet vom npm des Nodes und dem Bundler von Ruby.

Sagen wir:

  • Sie haben ein Projekt, das auf verschiedene Bibliotheken angewiesen ist.
  • Ein Teil dieser Bibliotheken stützt sich auf andere Bibliotheken.

Komponist:

  • Ermöglicht es Ihnen, die Bibliotheken zu verwenden, auf die Sie angewiesen sind. 
  • Erkennt, welche Versionen welcher Pakete installiert werden können und sollen, und installiert sie (d. h. es lädt sie in Ihr Projekt herunter). 
  • Sie können alle Abhängigkeiten mit einem einzigen Befehl aktualisieren.

Wenn Sie nicht wissen, was der Composer ist, dann empfehle ich Ihnen, sich anhand der offiziellen Dokumentation mit dem Composer vertraut zu machen. https://getcomposer.org/ 

Warum: Composer vs. Nicht-Composer

Wenn Sie einen Composer verwenden, wird Ihr Leben durch produktive und qualitativ hochwertige Arbeit gerettet. Hier sind einige wichtige Vorteile eines Composers wie unten.

  • Zuverlässiger Zugang 
  • Optimierter Build-Prozess 
  • Volle Unterstützung für Docker 
  • Sichere Lösung 
  • Verbreitung und gemeinsame Nutzung 
  • Artifactory Hochverfügbarkeit 
  • Unterstützung und Überwachung 
  • Allgemeine, End-to-End-Lösung

Natürlich erfordert das Erlernen der kompositorischen TYPO3-Installation eine kleine Lernkurve, aber ich bin sicher, dass sich Ihre harte Arbeit auszahlen wird.

Bei unserer regelmäßigen #T3POLL-Serie. Kürzlich habe ich versucht, die Meinung der Leute zum TYPO3 Composer-Support in TYPO3-Projekten auf verschiedenen Social Media-Plattformen zu erfahren.

In einer der aktiven Gruppen von TYPO3 bei Facebook liebten die Leute "Composer". Das Gute ist, dass die meisten Leute das auf Composer basierende TYPO3 geliebt und empfohlen haben. Sie können ein Umfrageergebnis und Kommentare unter https://www.facebook.com/groups/typo3/permalink/3211414308906535/ sehen. 

Wie funktioniert der TYPO3 Composer?

Sie müssen zwei Perspektiven verstehen: Client und Server.

Composer Client

Das ist sehr einfach - Die Endbenutzer wie Sie und ich, die den Composer über unsere CLI-Kommandozeile benutzt haben ;)

Composer-Pakete Server

Es gibt zwei Arten von Composer-Packagist-Repositories.

Öffentliche Pakete Composer Server

Packagist.org Guys bieten ein öffentliches Repository für OpenSource-Projekte. Standardmäßig versucht Composer, die Pakete von einem solchen öffentlichen Composer-Server zu finden.

Private Packages Composer Server

Lassen Sie uns sehen, wie Sie Ihre privaten TYPO3 Composer Pakete & Server aufbauen können. Als wir unser t3planet.com-Projekt starteten, war eine der ersten Forderungen unserer Kunden, den Support Composer auch für Premium-TYPO3-Produkte anzubieten.

Das Team T3Planet nahm die Herausforderung an und war begeistert, TYPO3 Satis Private Pakete für Composer zu erstellen.

Für Ihre privaten TYPO3-Pakete und -Erweiterungen haben wir zur Zeit zwei Lösungen;

Option 1. SaaS-Lösung von Packagist.com

Option 2. Selbstgehostete Lösung mit Satis

Wie können wir TYPO3 Private Packages einrichten?

  • Schritt 1. Was ist Satis? Installation von Satis
  • Schritt 2. Konfigurieren von satis.json
  • Schritt 3. Satis für Composer-Pakete generieren
  • Schritt 4. Testlauf mit Ihren privaten TYPO3-Paketen mit Composer
  • Schritt 5. Webhook zwischen Ihren TYPO3 Private Repositories & Satis
  • Schritt 6. Cron zum automatischen Crawlen von TYPO3 Private Packages einrichten
  • Schritt 7. Sichern Sie Ihre TYPO3 Private Packages auf dem Composer-Server
  • Bonus! Authentifizierungs-Zugang für einzelne TYPO3-Pakete

Möchten Sie Antworten auf die oben gestellten Fragen erhalten und die Einrichtung vornehmen?

Entdecken Sie unseren beliebten Artikel 7 Easy Steps to Satis - TYPO3 Private Packages for Composer

What’re Packages in Composer?

https://packagist.org/about

Gibt es Ressourcen, um den TYPO3 Composer zu erlernen?

TYPO3 hat viele Ressourcen, um den Composer zu erlernen. Ich empfehle, meinen letzten Blog 10 Resources to Learn TYPO3 Composer zu lesen

Welche sind die besten TYPO3 Lokalentwicklungen?

Kürzlich habe ich dazu einen Blog geschrieben, zu lesen unter 10 Best TYPO3 Local Development Tools & Techniques

Wie wird der Composer installiert/aktualisiert?

What is the Prerequisite for TYPO3 Composer?

Um den Composer zu installieren und zu konfigurieren, stellen Sie bitte sicher, dass Sie mindestens PHP 7.2 oder höher haben

// Check your PHP version, It should be 7.2 or later
php -v

Wie installiert man den TYPO3 Composer?

Die Installation des Composers ist sehr einfach. Wählen Sie Ihre bevorzugte Art der Installation und Konfiguration eines Composers aus den unten aufgeführten Optionen.

Option 1. Official Guide from Getcomposer.org

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Option 2. Using Standard Application Install

sudo apt-get update
sudo apt-get install composer
composer -v

Option 3. Using Curl + Application Get

sudo apt-get update
sudo apt-get install curl php-cli git
curl -sS https://getcomposer.org/installer | sudo php - --install-dir = / usr / local / bin --filename = composer

Aktivieren & Konfigurieren des Composer-Befehls

Sobald Sie composer installiert haben, empfehle ich Ihnen, die folgenden Befehle auszuführen

// Move composer.phar to bin to run as composer command
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

// Before above commands
/usr/local/bin/composer -v

// After the above commands
composer -v

Wie aktualisiert man die TYPO3 Composer Version?

Die Jungs von Composer veröffentlichen laufend neue Versionen, so dass Sie mit der Zeit einen Selbst-Update-Befehl ausführen können, um eine aktuelle Version des Composers zu haben (und natürlich, um zu lernen, was es Neues im Composer gibt).

// Update your composer version to the latest
composer self-update.

TYPO3 Composer-Befehle

Sie sollten die Befehle des TYPO3 Composers lernen. Versuchen Sie, zumindest diese Befehle zu üben.

composer update vendorname/extensionname
composer require vendorname/extensionname
composer install vendorname/extensionname
composer remove vendorname/extensionname
composer outdated

Schritt-für-Schritt-Anleitung zur Installation von TYPO3 Composer

Sie können TYPO3 mit Hilfe von Composer auf verschiedene Arten initiieren, erstellen und installieren, hier sind einige von ihnen wie unten.

Option 1: (Empfehlen) TYPO3 Composer-Projekt erstellen

// Go to your www folder
cd www

// Install latest TYPO3 v10 (It will create “YourProjectName” folder with downloading TYPO3 code)
composer create-project “typo3/cms-base-distribution:^10” YourProjectName --prefer-dist

// Create FIRST_INSTALL file
touch public/FIRST_INSTALL

Sobald Sie alles eingerichtet haben, sieht die Verzeichnisstruktur der TYPO3-Composer-Installation wie folgt aus;

├── .gitignore
├── composer.json
├── composer.lock
├── LICENSE
├── public
├── README.md
├── var
└── vendor

Option 2: Standard Composer Require

composer require typo3/cms

Option 3: TYPO3 Git Clone verwenden

Wenn Sie im Team arbeiten, kann Ihr Partner einfach mit TYPO3 Git herunterladen und installieren.

 

 

git clone https://github.com/example/example-site
cd example-site
composer install

Option 4: Benutzerdefinierte TYPO3 Composer-Installation

get.TYPO3.org bietet als Helfer des TYPO3 Composers coole Features, um auszuwählen, welche TYPO3-Pakete ein- oder ausgeschlossen werden sollen.

Laden Sie Ihre benutzerdefinierten und bevorzugten TYPO3 Composer-Pakete mit dem TYPO3 Packages Helper Tool herunter. Erkunden Sie TYPO3 Composer Helper.

Standardmäßig verfügt TYPO3 über drei Arten von TYPO3 Composer-Paketen wie unten dargestellt.

TYPO3 Full Composer

composer require "typo3/cms-about:^10.4" "typo3/cms-adminpanel:^10.4" "typo3/cms-backend:^10.4" "typo3/cms-belog:^10.4" "typo3/cms-beuser:^10.4" "typo3/cms-core:^10.4" "typo3/cms-dashboard:^10.4" "typo3/cms-extbase:^10.4" "typo3/cms-extensionmanager:^10.4" "typo3/cms-filelist:^10.4" "typo3/cms-fluid:^10.4" "typo3/cms-fluid-styled-content:^10.4" "typo3/cms-form:^10.4" "typo3/cms-frontend:^10.4" "typo3/cms-impexp:^10.4" "typo3/cms-info:^10.4" "typo3/cms-install:^10.4" "typo3/cms-lowlevel:^10.4" "typo3/cms-opendocs:^10.4" "typo3/cms-recordlist:^10.4" "typo3/cms-recycler:^10.4" "typo3/cms-redirects:^10.4" "typo3/cms-reports:^10.4" "typo3/cms-rte-ckeditor:^10.4" "typo3/cms-scheduler:^10.4" "typo3/cms-seo:^10.4" "typo3/cms-setup:^10.4" "typo3/cms-tstemplate:^10.4" "typo3/cms-viewpage:^10.4"

TYPO3 Minimal Composer

composer require "typo3/cms-backend:^10.4" "typo3/cms-core:^10.4" "typo3/cms-extbase:^10.4" "typo3/cms-extensionmanager:^10.4" "typo3/cms-filelist:^10.4" "typo3/cms-fluid:^10.4" "typo3/cms-frontend:^10.4" "typo3/cms-install:^10.4" "typo3/cms-recordlist:^10.4"

TYPO3 Default Composer

composer require "typo3/cms-about:^10.4" "typo3/cms-adminpanel:^10.4" "typo3/cms-backend:^10.4" "typo3/cms-belog:^10.4" "typo3/cms-beuser:^10.4" "typo3/cms-core:^10.4" "typo3/cms-dashboard:^10.4" "typo3/cms-extbase:^10.4" "typo3/cms-extensionmanager:^10.4" "typo3/cms-filelist:^10.4" "typo3/cms-fluid:^10.4" "typo3/cms-fluid-styled-content:^10.4" "typo3/cms-form:^10.4" "typo3/cms-frontend:^10.4" "typo3/cms-impexp:^10.4" "typo3/cms-info:^10.4" "typo3/cms-install:^10.4" "typo3/cms-lowlevel:^10.4" "typo3/cms-opendocs:^10.4" "typo3/cms-recordlist:^10.4" "typo3/cms-recycler:^10.4" "typo3/cms-redirects:^10.4" "typo3/cms-reports:^10.4" "typo3/cms-rte-ckeditor:^10.4" "typo3/cms-scheduler:^10.4" "typo3/cms-seo:^10.4" "typo3/cms-setup:^10.4" "typo3/cms-tstemplate:^10.4" "typo3/cms-viewpage:^10.4"

Option 5: Docker & DDEV TYPO3 Composer installieren

Docker and DDEV Jungs können das TYPO3-Projekt mit initiieren;

mkdir MyTYPO3Site
cd MyTYPO3Site
ddev config --project-type=typo3 --docroot=public --create-docroot=true
ddev start
ddev composer create "typo3/cms-base-distribution:^10" --prefer-dist
ddev exec touch public/FIRST_INSTALL
ddev launch

WICHTIG:
class="alert alert-danger">Bitte achten Sie darauf, dass Ihr Dokumentenstamm auf den Ordner "public" zeigt. Andernfalls sollten Sie auf Ihre TYPO3-Site zugreifen, z. B. http://yourdomain.com/public/ 

Mathias hat ein cooles TYPO3 Composer Video erstellt, jetzt ansehen

Wie kann der composer den TYPO3-Kern aktualisieren?

Das ist das Schöne am Composer, mit einem einzigen Befehl wird Ihr TYPO3-Kern aktualisiert ;)

 

 

// Update TYPO3 core to latest version
composer update typo3/cms --with-all-dependencies

// Update TYPO3 to particular version
composer update typo3/cms ^10.4

Beispiel Composer.json

Composer.json enthält zwei wichtige Dinge:

  • Der Verkäufername ist Vendorname
  • Der Schlüssel der Erweiterung ist my_extension

Nachfolgend:

  • Der Namespace lautet Vendorname/meineErweiterung
  • Der Paketname wird Vendorname/meineErweiterung sein
// Sample composer.json
{
  "name": "vendor/ext-key",
  "description": "Basic composer.json attributes",
  "keywords": ["typo3", "extension", "composer"],
  "homepage": "http://yoursite.com",
  "authors": [
    {
      "name": "Your Name",
      "email": "YourEmail"
    }
  ],
  "license": "GPL-2.0-or-later",
  "type": "typo3-cms-extension",
  "require": {
    "typo3/cms-core": "^9.5 || ^10.4",
    "typo3/cms-frontend": "^9.5 || ^10.3"
  },
  "replace": {
    "typo3-ter/ext-key": "self.version"
  },
  "autoload": {
    "psr-4": {
      "Vendor\\ExtKey\\": "Classes/"
    }
  },
  "extra": {
    "typo3/cms": {
      "extension-key": "ext_key"
    }
  }
}

Kennen Sie das?Wie funktioniert die composer.json für TYPO3 core? Erkunden Sie die composer.json von TYPO3 core

TYPO3 ist flexibel mit Split-Tree

Das TYPO3-Kernteam hat eine großartige Entscheidung getroffen, indem es das gesamte TYPO3 aufgesplittet hat, das heißt - alle Systemerweiterungen von TYPO3 sind unabhängig.

Das Schöne an Split-tree ist, dass Sie mit dem Composer jedes System unabhängig von TYPO3 Extensions installieren und konfigurieren können.

Ab TYPO3 v9.0 kann jede Systemerweiterung separat (noch nicht aktiviert) über den Composer mit "typo3/cms-{extension-name}" wie in "typo3/cms-backend" installiert werden.

// Explore the TYPO3’s system extensions
tree web/typo3/sysext -L 1
public/typo3/sysext
├── about
├── backend
├── belog
├── beuser
├── core
├── dashboard
├── extbase
├── extensionmanager
├── felogin
├── filelist
├── fluid
├── fluid_styled_content
├── form
├── frontend
├── impexp
├── indexed_search
├── info
├── install
├── recordlist
├── reports
├── rte_ckeditor
├── seo
├── setup
├── sys_note
├── t3editor
├── tstemplate
└── viewpage
27 directories, 0 files

Explore Split-tree of TYPO3 v9

// typo3/minimal
tree . -L 4 -I vendor
.
├── composer.json
├── composer.lock
└── public
    ├── index.php
    └── typo3
        ├── index.php
        ├── install.php
        └── sysext
            ├── backend
            ├── core
            ├── documentation
            ├── extbase
            ├── extensionmanager
            ├── filelist
            ├── fluid
            ├── frontend
            ├── install
            ├── lang
            ├── recordlist
            └── saltedpasswords
15 directories, 5 files

Explore Split-tree of TYPO3 8 LTS

// typo3/minimal
tree . -L 3 -I vendor
.
├── composer.json
├── composer.lock
└── typo3
    └── sysext
        ├── backend
        ├── core
        ├── cshmanual
        ├── extbase
        ├── extensionmanager
        ├── filelist
        ├── fluid
        ├── frontend
        ├── install
        ├── lang
        ├── recordlist
        ├── saltedpasswords
        └── sv
15 directories, 2 files

Wie installiert/aktualisiert man TYPO3 und Extensions?

Sie wollen also die TYPO3 Extension aus dem TYPO3 Extensions Repository (TER) mit Ihrer Composer basierten TYPO3 Installation installieren.

Schritt 1. Gehen Sie auf die TYPO3-Extension-Seite, z. B. https://extensions.typo3.org/extension/ns_backup​​​​​​​ 

Schritt 2. Suchen Sie den Composer-Support, z. B. composer req nitsan/ns-backup

Manchmal, wenn ein bestimmter Entwickler TER und Packagist nicht verlinkt hat, dann können Sie direkt bei Packagist mit TYPO3-CMS-Extension finden

Praktisches Beispiel für die Installation einer Extension mit dem TYPO3 Composer.

// Syntax
composer require <packagename>
./vendor/bin/typo3 extension:activate <extension key> 

// Example
composer require georgringer/news
./vendor/bin/typo3 extension:activate news

// After Installation of TYPO3 Extension, Check your composer.json should add an entry of your installed TYPO3 extension
"require": {
    "typo3/cms": "~7.6.0",
    "georgringer/news": "^4.0.0"
}

Wie aktualisiert man den TYPO3 extensions composer?

Wann immer Sie Ihre bestimmte TYPO3-Extension aktualisieren wollen, müssen Sie nur den Befehl "composer update" wie unten beschrieben ausführen.

// Remove your TYPO3 extension
composer remove nitsan/ns-backup

Tipp: Vergessen Sie nicht, Ihre aktualisierte composer.lock an Ihr Versionskontrollsystem zu übergeben.

How to provide support for a composer to my TYPO3 extensions?

Klingt nach einer guten Entscheidung, mein Freund. In der TYPO3-Community bieten die meisten TYPO3-Entwickler Unterstützung für Komponisten an.

Und, das ist ganz einfach, hier sind die schnellen Schritte, um einen Komponisten für Ihre TYPO3-Extensions zu unterstützen.

Schritt 1. composer.json vorbereiten

Erstellen Sie in Ihrer TYPO3-Extension eine composer.json-Datei, hier das Arbeitsbeispiel.

// composer.json
{
    "name": "nitsan/ns-backup",
    "type": "typo3-cms-extension",
    "description": "First-ever feature-rich TYPO3 backup solution with manual and scheduled backup.",
    "homepage": "https://extensions.typo3.org/extension/ns_backup/",
    "license": "GPL-2.0+",
    "keywords": [
        "TYPO3",
        "Backup"
    ],
    "support": {
        "issues": "https://github.com/nitsan-technologies/ns_backup/issues"
    },
    "require": {
        "typo3/cms-core": ">=8.0.0"
    },
    "autoload": {
        "psr-4": {
            "NITSAN\\NsBackup\\": "Classes"
        }
    },
    "replace": {
        "typo3-ter/ns-backup": "self.version"
    },
    "config": {
        "vendor-dir": ".Build/vendor/",
        "bin-dir": ".Build/bin/"
    },
    "extra": {
        "typo3/cms": {
            "cms-package-dir": "{$vendor-dir}/typo3/cms",
            "web-dir": ".Build/public",
            "extension-key": "ns_backup"
        }
    }
}

Schritt 2. Einrichten Ihres Git-Repositorys

Sie müssen Ihre TYPO3-Extension bei Ihren coolen Git-Tools wie Github, Gitlab, etc. pushen.

Schritt 3. Verbinden Sie Ihr Git mit Packagist

Anmeldung bei https://packagist.org/
Senden Sie Ihr Paket an https://packagist.org/packages/submit

Schritt 4. Packagist API Token erhalten

Gehen Sie zu https://packagist.org/profile/ und Composer API Token

Schritt 5. API am Git-Repository-Webhook einstellen

Konfigurieren Sie jetzt das Composer-API-Token für Ihr Git-Repository. Wenn Sie nun die nächste Version veröffentlichen, wird eine neue Version automatisch von Packagist.org erfasst.

Schritt 6. TER Aktivieren Sie TYPO3 Composer

Zu guter Letzt, wenn Sie Ihre TYPO3-Extension bei TER hochgeladen haben, dann müssen Sie nur noch den TYPO3 Composer aktivieren.

Ich empfehle die Lektüre eines meiner berühmten Blogs Publish and Maintain your TER TYPO3 Extensions with Composer + Git + Packagist

Tipps & Tricks zum TYPO3 Composer

Die meisten Themen des TYPO3 Composers werden in diesem Artikel behandelt, aber ich möchte trotzdem noch ein paar Bonus-Tipps geben, wie unten.

Tipp Nr. 1 No-run-Komponist bei der Produktion

Führen Sie den Composer niemals in der Produktion oder auf einer Live-Site von TYPO3 aus, z. B. um TYPO3-Erweiterungen zu aktualisieren. Es besteht die Möglichkeit, die Installation zu zerstören. Es ist immer eine gute Praxis, Dinge komplett auf dem lokalen oder Staging-Server zu aktualisieren oder zu warten.

Tipp #2 PHP-Version einstellen

Als Teil der Best Practice empfehle ich, immer "PHP Version" in Ihrem Composer zu definieren, um die Kompatibilität mit verschiedenen PHP-Versionen des Servers herzustellen.

// composer.json
"config": {
       "platform": {
           "php": "7.2"
       },
},

Tipp #3 Verstehen Sie die Bedeutung von composer.lock

Nach der Aktualisierung von Paketen sollten Sie immer die composer.lock an Ihr Versionskontrollsystem übergeben und Ihre Mitarbeiter sollten composer install ausführen, nachdem sie die Aktualisierungen ausgecheckt haben.

Tipp Nr. 4 Update Einzel-Paket vs. Komplett-Paket

Bitte seien Sie vorsichtig, während Sie Ihre TYPO3-Instanz aktualisieren. Wenn Sie sicher sind, dass alle Abhängigkeiten Ihres Pakets korrekt sind, können Sie alle Pakete mit einem Befehl aktualisieren, andernfalls sollten Sie erwägen, ein Paket nach dem anderen zu aktualisieren - TYPO3-Erweiterung.

// Update ALL Packages
composer update

// Update One-by-one Single Package
composer update vendor/packagename

Tipp #5 Composer Update TYPO3 Sysext auf einmal

Wussten Sie, dass Sie den gesamten TYPO3-Sysext mit einem einzigen Befehl aktualisieren können, z.B;

// Update all sysext TYPO3 core extensions
composer update typo3/cms-* --with-dependencies

Seien Sie vorsichtig, dieser Befehl kann negative Auswirkungen haben, wenn Sie keine korrekten Versionsbeschränkungen in Ihrer composer.json haben. Sie sollten es immer vorziehen, Ihre Pakete separat zu aktualisieren.

Tipp #6 Eigene Composer TYPO3 Repositories hinzufügen

Möchten Sie Ihr eigenes TYPO3 Composer-Repository hinzufügen, z.B. Github? Sie können einfach mehrere Repositories in den Composer konfigurieren mit repositories > type > vcs.

// composer.json
{
 "repositories": [
 {
 "type": "vcs",
 "url": "https://github.com/username/repo"
 },
 ],
 "require": {
 "vendor/repo": "dev-master",
 },
}

Tipp Nr. 7 Definieren Sie Ihren eigenen öffentlichen Ordner

Standardmäßig legt der TYPO3 Composer den Ordner "public" als Dokumentenstamm an. Wenn Sie einen anderen Ordner einstellen wollen, konfigurieren Sie einfach > extra > typo3/cms > web-direct

// composer.json
"extra": {
  "typo3/cms": {
    "cms-package-dir": "{$vendor-dir}/typo3/cms",
    "web-dir": "web"
  }
}

// You will get “web” folder at TYPO3 root
$ ls -la
drwxr-xr-x  .git
-rw-r--r--  .gitignore
-rw-r--r--  composer.json
-rw-r--r--  composer.lock
drwxr-xr-x  vendor
drwxr-xr-x  web

// “web” folder contains TYPO3
$ls -la web
drwxrwsr-x  fileadmin
lrwxr-xr-x  index.php
lrwxr-xr-x  typo3
drwxr-xr-x  typo3conf
drwxrwsr-x  typo3temp
drwxrwsr-x  uploads

Tipp #8 TYPO3-Erweiterungen mit Composer testen

Fügen Sie Pakete mit dem Attribut --dev hinzu, um Pakete nur zu Ihrer lokalen Entwicklungsumgebung hinzuzufügen. Dies ist sehr nützlich für Pakete, die Sie nicht benötigen oder nicht auf Ihrem Live-Server haben möchten, z. B. PHPUnit oder Testing-Frameworks.

composer require typo3/testing-framework:^2.0 --dev

Während Ihrer Deployment-Routine sollten Sie den composer install mit dem Attribut --no-dev ausführen. So werden die dev-Anforderungen nicht installiert.

composer install --no-dev

Tip #9 Keep Check Outdated TYPO3 extensions

// to see a list of available updates.
composer outdated

// to see a list of available updates for directly required packages.
composer outdated -D

Tipp #10 Autoload-Klassen im TYPO3 Composer

Im Composer-Modus prüft der Autoloader auf (classmap und PSR-4) Autoloading-Informationen in der composer.json Ihrer Erweiterungen.

composer dumpautoload

Dumpen Sie die Klassenladeinformationen manuell und prüfen Sie, ob die Autoload-Informationen aktualisiert werden. Normalerweise würden Sie in vendor/composer prüfen, ob Dateien wie autoload_classmap.php und autoload_psr4.php usw. vorhanden sind.

$ tree vendor/composer
.
├── ClassLoader.php
├── LICENSE
├── autoload_classmap.php
├── autoload_files.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
├── include_paths.php
└── installed.json

// composer.json
"autoload": {
  "psr-4": {
    "DanielGoerz\\MyExtension\\": "web/typo3conf/ext/my_extension/Classes/"
  }
}
"autoload": {
  "classmap": [
    "web/typo3conf/ext/my_legacy_ext/"
  ]
}

composer dump-autoload

Tipp #11 TYPO3 Patch schnell installieren

Sie wollen schnell einen TYPO3-Patch über einen Composer installieren? Das ist ganz einfach wie unten.

// composer.json
"extra": {
    "patches": {
        "typo3/cms-core": {
            "BUGFIX unique for fields with l10n_mode=exclude": "Build/Patches/c1ce767_core.diff"
        },
        "typo3/cms-frontend": {
            "BUGFIX unique for fields with l10n_mode=exclude": "Build/Patches/c1ce767_frontend.diff"
        }
    }
},

// Install TYPO3 core patch
composer require cweagans/composer-patches
composer install

Tipp #12 Deaktivieren Sie den TYPO3 Composer-Modus

Schritt 1. Gehen Sie zu /vendor/typo3/autoload-include.php

Schritt 2. TYPO3_COMPOSER_MODE = FALSE

// TYPO3 is installed via composer. Flag this with a constant.
if (!defined('TYPO3_COMPOSER_MODE')) {
    define('TYPO3_COMPOSER_MODE', FALSE);
}

Tipp #13 TYPO3 Migration von Nicht-Composer zu Composer

Ja, Sie sind verliebt in den TYPO3 Composer? und möchten Ihre Nicht-Composer- auf eine Composer-basierte TYPO3-Installation migrieren?

Erkunden Sie die offizielle Dokumentation von Migrate TYPO3 Project to Composer

Tipp #14 Premium TYPO3 Pakete einrichten

Sie wollen Ihre privaten oder Premium TYPO3 Pakete für Ihre Kunden oder interne private TYPO3 Projekte? Sie können es leicht implementieren, Erkunden Sie unseren beliebten Artikel 7 Easy Steps to Satis - TYPO3 Private Packages for Composer

Tipp #15 Sichern Sie Ihr TYPO3 besser ab

Kennen Sie die zauberhafte und sichere TYPO3 Architektur von Helmut?

// composer.json
"extra": {
    "typo3/cms": {
        "root-dir": "private",
        "web-dir": "public"
    }
}

// install typo3-secure-web
composer require helhum/typo3-secure-web

Ich empfehle die Lektüre einer Schritt-für-Schritt-Anleitung zur Sicherung Ihrer TYPO3- und Server-Architektur

Tipp #16 TYPO3 Composer Generator

Für die TYPO3-Entwickler oder Integratoren, die benutzerdefinierte TYPO3-Erweiterungen erstellen wollen, müssen die composer.json manuell initiieren, hat das Team T3Planet eine coole TYPO3-Composer-Generator-Lösung entwickelt.

Sie können TYPO3 composer.json für Ihre TYPO3-Extension generieren, indem Sie;

  • Hochladen der ext_emconf.php Ihrer TYPO3-Erweiterung
  • Durch Ausfüllen des Formulars zur Erstellung des TYPO3 Composers
  • Beispiel TYPO3 composer.json herunterladen

Fazit!

Danke für das Lesen eines so langen Artikels :)

Ich hoffe, Sie mögen es, lernen es und erforschen es eingehend über TYPO3 Composer. Lassen Sie uns kurz rekapitulieren.

  • Verstehen Sie die Grundlagen und die Architektur des Composers, versuchen Sie weiterhin alle Composer-Befehle wie create, require, install, update, etc. zu üben, erforschen Sie weiterhin Tipps und Techniken des TYPO3 Composers.
  • Beginnen Sie für Ihre kommenden TYPO3-Projekte mit der Composer-basierten Installation von TYPO3 und Extensions.
  • Wenn Sie TYPO3-Extensions für TER entwickeln, dann sollten Sie den Composer für alle TYPO3-Extensions unterstützen.

Haben Sie Anregungen oder Feedback? oder, Stehen Sie vor irgendwelchen Problemen in Ihrem TYPO3 composer Projekt? Ich werde sehr glücklich sein, Ihnen zu helfen, Schreiben Sie das Kommentarfeld unten.

Viel Spaß beim TYPO3 Composer-Projekt!

Your One-Stop Solutions for Custom TYPO3 Development

  • A Decade of TYPO3 Industry Experience
  • 350+ Successful TYPO3 Projects
  • 87% Repeat TYPO3 Customers
TYPO3 Service
service

Post a Comment

×
Captcha Code Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren
  • user
    Andreas 2020-08-16 um 8:12 pm
    Great article, thanks fpr positng :) But one thing I don't understand yet... Imagine I have a self-made extension already in .../typo3conf/ext/my_extension, no TER, no Git. How do I install this in a Typo3 in Composer mode? Kind regards, Andreas
    • user
      Sanjay Chauhan 2020-08-18 um 8:49 am
      Hey Andreas,

      Thanks for your feedback and appreciation. That's very easy, You can easily install and configure your local TYPO3 extension in composer, Checkout https://t3planet.com/typo3-tutorials/install-local-typo3-extensions-composer-mode/ Composer is awesome :)

      Cheers,
      Sanjay
      • user
        Andreas 2020-08-18 um 12:02 pm
        Hey Sanjay,

        thanks for your answer, thanks for caring :) I will take a close look at the link. In fact I am very new to developing Typo3 extensions ;)

        Kind regards

        Andreas