Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Composer und TYPO3
-
Upload
peter-kraume -
Category
Internet
-
view
1.176 -
download
1
Transcript of Composer und TYPO3
Peter Kraume Senior TYPO3 Developer
Twitter: @cybersmog Mail: [email protected] Slides: http://de.slideshare.net/pk77/
Composer ist ein Tool für das Abhängigkeitsmanagement
in PHP.
Es erlaubt die Angabe von Abhängigkeiten zu anderen Bibliotheken, die in einem Projekt benötigt werden,
und installiert diese in das Projekt.
Warum Dependency Management?
• Abhängigkeiten
• Frameworks (Zend Framework, Symphony)
• API Clients
• TYPO3 Extensions
• Wiederverwendung von Code
• Rauslösen von wiederverwendbarem Code
• viele kleine Code Bibliotheken
• Das Rad nicht immer neu erfinden
Warum nicht PEAR verwenden?
• globale Installation von Paketen
• schwierige Kontrolle der Paketversionen im Projekt
• Qualitätskontrolle bei pear.php.net
• Coding Standards
• RFCs
• Aufsetzen einen PEAR Channels ist zeitaufwendig und nicht einfach genug
Warum also Composer?
✓ Installation von Paketen auf Projektebene
✓ Die Konfiguration ist im Repository
✓ gleiche Version bei jedem Entwickler
✓ Abhängigkeiten sind an zentraler Stelle dokumentiert
✓ Source Code aus kann aus diversen Quellen geladen werden
✓ Zentrales Composer Repository: packagist.org
✓ Composer ♥ JSON
Historie
✓ Start: April 2011
✓ Erste Veröffentlichung: 1. März 2012
✓ 100% PHP
✓ Inspiriert von npm (node.js) und bundler (Ruby)
✓ Wurzeln in der Symfony2 Community
✓ > 80.000 Pakete auf Packagist registriert
✓ GitHub Service Hook für Packagist
globale Installation:
! Composer benötigt PHP 5.3.2+
Installation von Composer
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
Beispiel domainfactory:
Eintrag in .bashrc oder .zshrc
Installation bei Shared Hosting
$ curl -sS https://getcomposer.org/installer | \
/usr/local/bin/php5-56STABLE-CLI
alias composer="/usr/local/bin/php5-56STABLE-CLI \
/kompletter/pfad/zur/composer.phar"
Wie funktioniert Composer?
Icons: Ryan Beck, Kirill Ulitin & Pieter J. Smits from the Noun Project
composer.json - interne Abhängigkeiten - öffentliche Abhängigkeiten - Metadaten
git svn mercurial
Packagist.org github.com
composer.json
✓ Meta Daten
✓ Konfiguration
✓ Abhängigkeiten
✓ Entwicklungsabhängigkeiten
{ "repositories": [ { "type": "vcs", "url": "https://github.com/peterkraume/demo_fsc" }
], "require": { "kws/demo-fsc": "1.0.2" } }
Verzeichnisinhalt nach der Installation
├── composer.json ├── composer.lock └── vendor ├── autoload.php ├── composer │ ├── autoload_classmap.php │ ├── autoload_namespaces.php │ ├── autoload_psr4.php │ ├── autoload_real.php │ ├── ClassLoader.php │ ├── installed.json │ └── LICENSE └── kws └── demo-fsc
composer.lock
✓ speichert die genauen Versionen der installierten Abhängigkeiten
✓ alle Projektbeteiligten bekommen exakt die gleichen Versionen
✓ composer.json und composer.lock sollten versioniert werden
Weitere Befehle
update aktualisiert die Abhängigkeiten auf die neuste Version unter Berücksichtigung der composer.json und aktualisiert composer.lock
validate überprüft composer.json und composer.lock
self-update aktualisiert composer.phar auf die neueste Version
show -i -t zeigt einen Baum aller installierten Pakete und deren Abhängigkeiten
packagist.org
✓ registrierte Pakete
✓ 84.395
✓ verfügbare Versionen
✓ 426.883
✓ installierte Pakete
✓ 1.582.775.135(seit 13.04.2012)
TYPO3 mit Composer installieren
Neueste TYPO3 Version installieren:
Aktuellen dev-master installieren:
Vorteile:
✓ Es geht schnell!
✓ Extension Download auf der Kommandozeile möglich
✓ Es gibt einen web/ Ordner
$ composer create-project typo3/cms-base-distribution ZielVerzeichnis
$ composer create-project typo3/cms-base-distribution \
ZielVerzeichnis dev-master
Verzeichnisinhalt nach der Installation
MeinProjekt ├── composer.json ├── composer.lock ├── vendor │ ├── autoload.php │ ├── bin │ ├── cogpowered │ ├── composer │ ├── doctrine │ ├── mikey179 │ ├── pear │ ├── phpdocumentor │ ├── phpspec │ ├── phpunit │ ├── phpwhois │ ├── psr │ ├── sebastian │ ├── swiftmailer │ ├── symfony │ └── typo3 └── web ├── index.php -> ../vendor/typo3/cms/index.php └── typo3 -> ../vendor/typo3/cms/typo3
Extension mit Composer installieren
Extension installieren:
✓ Alle TER Extensions sind auch per Composer verfügbar
✓ Unterstriche müssen durch Bindestriche ersetzt werden
✓ Wenn TYPO3 per Composer installiert wurde, ist der Download von Extensions nur per Composer möglich
✓ Trotzdem müssen die Extensions noch im Extension Manager aktiviert werden!
$ cd MeinProjekt
$ composer require typo3-ter/news
Änderungen durch die Installation
✓ composer.json
✓ composer.lock
✓ web/typo3conf/ext/news
diff --git a/composer.json b/composer.json index d1028e5..cc04477 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,8 @@ "description" : "TYPO3 CMS Base Distribution", "license": "GPL-2.0+", "require": { - "typo3/cms": "~7.6.0" + "typo3/cms": "~7.6.0", + "typo3-ter/news": "^4.1" }, "require-dev": { "mikey179/vfsStream": "1.4.*@dev",
Links
✓ https://getcomposer.org/
✓ https://packagist.org/
✓ Generelle Infos über TYPO3 und Composerhttps://composer.typo3.org/
✓ Liste der via Composer verfügbaren Extensionshttps://composer.typo3.org/satis.html
✓ https://wiki.typo3.org/Composer
✓ Erklärung der Versions Einschränkungenhttps://getcomposer.org/doc/articles/versions.md
Vielen Dank!
Twitter: @cybersmog Mail: [email protected] Slides: http://de.slideshare.net/pk77/
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.