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.
Composer Client
Das ist sehr einfach - Die Endbenutzer wie Sie und ich, die den Composer über unsere CLI-Kommandozeile benutzt haben ;)
Ö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.
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
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.
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');"
sudo apt-get update
sudo apt-get install composer
composer -v
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.
// 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
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.
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"
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"
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
// 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
// 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
Hilfreiche Learn TYPO3 Composer Blogs
Neben der offiziellen TYPO3-Dokumentation finden Sie hier einige der beliebtesten Blogs, die Ihnen helfen, TYPO3 Composer vom Anfänger bis zum Fortgeschrittenen zu erlernen.
- Wie man TYPO3 mit Composer installiert (in weniger als 5 Minuten)
- Composer und TYPO3
- Schritt-für-Schritt-Anleitung zum TYPO3 Composer
- Einrichten von TYPO3 im Composer-Modus
- Traditionelle vs. moderne TYPO3-Entwicklung (mit Composer)
- Veröffentlichen und Pflegen von TER TYPO3 Extensions
- 7 einfache Schritte zu Satis - TYPO3 Private Packages für Composer
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
// 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
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!
Hey Andreas,
Thanks for your feedback and appreciation. That's very easy, You can easily install and configure your local TYPO3 extension in composer.
Cheers,
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