4. 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.
6. 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
7. 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
8. 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
9. 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
11. 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"
12. 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
16. 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
17. 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
19. 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
21. 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
24. Links
✓ https://getcomposer.org/
✓ https://packagist.org/
✓ Generelle Infos über TYPO3 und Composer
https://composer.typo3.org/
✓ Liste der via Composer verfügbaren Extensions
https://composer.typo3.org/satis.html
✓ https://wiki.typo3.org/Composer
✓ Erklärung der Versions Einschränkungen
https://getcomposer.org/doc/articles/versions.md
25. Vielen Dank!
Twitter: @cybersmog
Mail: peter.kraume@bgm-gmbh.de
Slides: http://de.slideshare.net/pk77/
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.