[iTUG: Week-27] Schritt-für-Schritt-Anleitung zum TYPO3 Composer

In unserem nächsten TYPO3 Usergroup Meeting bei iTUG (India TYPO3 User Group) werden wir eine Demo über die Verwendung des TYPO3 Composer Repositorys präsentieren. TYPO3 ist in der Lage, im Composer-Modus zu laufen. Es ist schnell, es ist gut für die Bereitstellung und hat einen Webordner. Dieser Beitrag erklärt, was nötig ist, um den Composer zum Laufen zu bringen.

[iTUG: Week-27] Schritt-für-Schritt-Anleitung zum TYPO3 Composer

Manuelles Herunterladen-Installieren-Aktualisieren von TYPO3 Core & Extensions

Arbeiten Sie immer noch auf die alte Art und Weise, um TYPO3 & Extensions einzurichten? Angenommen, Sie wollen ein neues TYPO3 Projekt starten, wie machen Sie das? Gehen Sie zu typo3.org und laden Sie das neueste Paket (von TYPO3 core & extensions) herunter, entpacken Sie das Paket, kopieren Sie den Ordner in Ihr Serververzeichnis, installieren Sie es, führen Sie es aus, konfigurieren Sie es, richten Sie es ein, usw.. Igitt, zu zeitaufwendig und ineffizient für eine einfache TYPO3-Einrichtung. Und dann fragen Sie sich auch noch nach den folgenden Punkten

  • Wie steht es um die Versionsabhängigkeit von TYPO3 Core & Extensions?
  • Was, wenn Sie viele TYPO3 Extensions installieren wollen? Dann müssen Sie ständig die Abhängigkeiten überprüfen, herunterladen, installieren, konfigurieren und so weiter.
  • Wie man den TYPO3-Kern und viele TYPO3-Erweiterungen aktualisiert - Wieder eine lange Reise mit dem Überprüfen von Abhängigkeiten, Herunterladen, Installieren/Aktualisieren etc etc etc....die Liste ist lang!!

Es gibt eine Möglichkeit, diesen schlechten Arbeitsablauf zu überwinden. Lassen Sie uns Ihnen vorstellen: Der Composer. Alles, was Sie tun müssen, ist, einige Befehle auf das Terminal anzuwenden und eine Datei zu konfigurieren - der Composer kümmert sich um den Rest.

Kennen Sie das Composer Repository?

Composer - Der Abhängigkeitsmanager für PHP. Haben Sie schon einmal von https://getcomposer.org/ gehört? Composer ist ein Tool für die Verwaltung von Abhängigkeiten in PHP. Es erlaubt Ihnen, die Bibliotheken anzugeben, von denen Ihr Projekt abhängt, und es verwaltet (installiert/aktualisiert) sie für Sie.

Systemanforderungen:

  • OS: Linux/Unix/OSX/Windows
  • Version: PHP 5.3.2 +
  • PHP settings: Einige empfindliche PHP-Einstellungen und Kompilierungsfahnen sind ebenfalls erforderlich.
  • Versioning System: git, svn, fossil oder hg, je nachdem, wie das Paket versionskontrolliert ist.

Wie wird der Composer eingerichtet?

Installieren und konfigurieren Sie den Composer mit den folgenden Schritten:

Step 1: Composer installieren

Laden Sie den Composer herunter und installieren Sie ihn, indem Sie den Anweisungen auf https://getcomposer.org/download/

Step 2: composer.json definieren

Erstellen Sie eine composer.json, die Ihre Abhängigkeiten definiert. Beachten Sie, dass dieses Beispiel nur eine Kurzversion für Anwendungen ist, die nicht als Paket veröffentlicht werden sollen. Zur Erstellung von Bibliotheken/Paketen lesen Sie bitte die Dokumentation.

 

{ 
 "require":{ 
   "monolog/monolog": ">=1.0.0"
 }
}

 

Step 3: Laufen lassen

Composer-Befehl ausführen: php composer.phar install

Step 4: Browse

Browse for more packages on Packagist.


CWeitere Details wie die globale Installation des Composers, die Aktualisierung des Composers und mehr finden Sie unter getcomposer.org/doc/00-intro.md

Was ist das TYPO3 CMS Composer Repository?

https://getcomposer.org ist ein Composer-Repository, mit dem Sie den TYPO3 CMS-Kern und die Erweiterungen einschließlich der Abhängigkeiten über den Composer installieren können. Suchen Sie nach verfügbarenTYPO3 Extensions Paketen unter https://composer.typo3.org/ satis. html

Wie benutzt man den TYPO3 CMS Composer für TYPO3 Core & Extensions?

Wir zeigen Ihnen, wie Sie den Composer schnell nutzen können. Die TYPO3 Core - Base Distribution können Sie mit den folgenden Schritten herunterladen:

Schritt 1: Download der TYPO3 CMS Base Distribution

the latest "stable" release (7.6)

 

Command: composer create-project typo3/cms-base-distribution CmsBaseDistribution

 

the "dev" branch (8.1)

 

Command: composer create-project typo3/cms-base-distribution CmsBaseDistribution dev-master

 

the "dev" 7.6 branch

 

Command: composer create-project typo3/cms-base-distribution CmsBaseDistribution 7.6.x-dev

 

Schritt 2: Zusätzliche TYPO3-Pakete/Erweiterungen hinzufügen

Now, let’s add TYPO3 extensions too through composer. The commands must run inside the CmsBaseDistribution directory.

 

# Add a CMS extension into typo3conf/ext.
composer require typo3-ter/news
-> if asked for a version constraint, answer with *.

# Add a package from outside the CMS world into Packages/Libraries
# Notice: Packages/Libraries/autoload.php will need to be included in your code.
composer require monolog/monolog
# Personalize your composer.json file to your needs.
edit composer.json

 

Die Verwendung des Composers zur Installation von TYPO3 CMS ist ziemlich einfach, Sie müssen nur das benutzerdefinierte Composer-Repository in Ihr composer.json. Nachdem Sie dies getan haben, können Sie den Core und / oder die Erweiterungen mit dem üblichen Composer-Versionierungsformat anfordern. Im folgenden Beispiel erhalten Sie so immer den aktuellen 7.6.x Kern von TYPO3 CMS, die aktuelle Version der News (inklusive möglicher Abhängigkeiten!).

Hinweis: Achten Sie darauf, die Unterstriche zu ersetzen "_" with a dash "-" im Nebenstellenschlüssel. Zum Beispiel, die Erweiterung "tt_products" wird geschrieben als "tt-products" in the composer.json.

 

{
 "repositories": [
	  {"type": 
	    "composer",
	   "url": "https://composer.typo3.org/" 
	  }
  ],
  "require": { 
	   "typo3/cms": "^7.6.9",
	   "typo3-ter/news": "^3.2.5" 
	   }, 
	   "extra": { 
		    "typo3/cms": { 
		    	"cms-package-dir": "{$vendor-dir}/typo3/cms",
		    	"web-dir": "web" 
		    }
	    }
}

 

Haben Sie eine eigene maßgeschneiderte TYPO3-Erweiterung? Es wird empfohlen, Ihre eigene composer.json-Datei in Ihre Extension einzufügen, um auf der sicheren Seite zu sein, da TYPO3 CMS sich mehr und mehr auf Composer verlassen wird, um Abhängigkeiten zu handhaben. Die Datei muss sich im Stammverzeichnis Ihrer Erweiterung befinden und muss wie folgt aussehen:

 

{
    "name": "vendor-name/my-ext-key",
    "type": "typo3-cms-extension",
    "description": "Write down your description of extension",
    "homepage": "https://yoursite.com",
    "license": ["GPL-2.0+"],
    "keywords": ["TYPO3 CMS", "keyword1 keyword2"],
    "support": {
        "issues": "https://forge.typo3.org/projects/extension-my_ext_key"
    },

    "require": {
        "typo3/cms-core": "^6.2.14 || ^7.6.0"     
    },
    "autoload": {
        "psr-4": {
        	"VendorName\\MyExtKey\\": "Classes/"
        }
    },
    "replace": {
        "my_ext_key": "self.version", 
        "typo3-ter/my-ext-key": "self.version"
    } 
}

 

Der Vendor-Name muss einer der Ihren sein. Er darf nicht "typo3" sein, der für Core-Erweiterungen reserviert ist. Im TYPO3-Wiki gibt es einige Hinweise zu Konventionen in Bezug auf Namespaces.

Sample composer.json

{
 "repositories": [
	 { 
	 	"type": "composer", 
	 	"url": "https://composer.typo3.org/"
	 }
 ],

 "name": "NITSAN/composer-example", 
 "description" : "TYPO3 Core & News extensions example composer.json.", 
 "license": "GPL-2.0+", 
 "require": { 
	 	"typo3/cms": "^7.6", 
	 	"typo3-ter/news": "^4.0"
 }, 
 "extra": { 
	"typo3/cms": { 
		"cms-package-dir": "{$vendor-dir}/typo3/cms", 
		"web-dir": "web"
	} 
 } 
 "replace": { 
 	"ext_news": "self.version", 
 	"typo3-ter/ext-news": "self.version" 
 },
 "autoload": { 
	"psr-4": { 
		"GeorgRinger\\ExtNews\\": "Classes" 
	}
 },
}

Comments and Responses

×

Name is required!

Enter valid name

Valid email is required!

Enter valid email address

Comment is required!

You have reached the limit for comments!

* These fields are required.

Be the First to Comment