Author
peter-kraume
View
1.173
Download
1
Embed Size (px)
TYPO3Munich User Group
2. Februar 2016
Peter Kraume Senior TYPO3 Developer
Twitter: @cybersmog Mail: [email protected] Slides: http://de.slideshare.net/pk77/
Composer ist ein Tool fr dasAbhngigkeitsmanagement
in PHP.
Es erlaubt die Angabe von Abhngigkeiten zu anderen Bibliotheken, die in einem Projekt bentigt werden,
und installiert diese in das Projekt.
Und was bedeutet das jetzt?
Warum Dependency Management?
Abhngigkeiten
Frameworks (Zend Framework, Symphony)
API Clients
TYPO3 Extensions
Wiederverwendung von Code
Rauslsen 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
Qualittskontrolle bei pear.php.net
Coding Standards
RFCs
Aufsetzen einen PEAR Channels ist zeitaufwendig und nicht einfach genug
http://pear.php.net
Warum also Composer?
Installation von Paketen auf Projektebene
Die Konfiguration ist im Repository
gleiche Version bei jedem Entwickler
Abhngigkeiten sind an zentraler Stelle dokumentiert
Source Code aus kann aus diversen Quellen geladen werden
Zentrales Composer Repository: packagist.org
Composer JSON
http://packagist.org
Historie
Start: April 2011
Erste Verffentlichung: 1. Mrz 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 fr Packagist
globale Installation:
! Composer bentigt 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 Abhngigkeiten - ffentliche Abhngigkeiten - Metadaten
git svn mercurial
Packagist.org github.com
composer.json
Meta Daten
Konfiguration
Abhngigkeiten
Entwicklungsabhngigkeiten
{ "repositories": [ { "type": "vcs", "url": "https://github.com/peterkraume/demo_fsc" }
], "require": { "kws/demo-fsc": "1.0.2" } }
Abhngigkeiten installieren
$ composer install
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 Abhngigkeiten
alle Projektbeteiligten bekommen exakt die gleichen Versionen
composer.json und composer.lock sollten versioniert werden
Weitere Befehle
update aktualisiert die Abhngigkeiten auf die neuste Version unter Bercksichtigung der composer.json und aktualisiert composer.lock
validate berprft 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 Abhngigkeiten
packagist.org
registrierte Pakete
84.395
verfgbare 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 mglich
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 verfgbar
Unterstriche mssen durch Bindestriche ersetzt werden
Wenn TYPO3 per Composer installiert wurde, ist der Download von Extensions nur per Composer mglich
Trotzdem mssen 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",
Fragen ?
Links
https://getcomposer.org/
https://packagist.org/
Generelle Infos ber TYPO3 und Composerhttps://composer.typo3.org/
Liste der via Composer verfgbaren Extensionshttps://composer.typo3.org/satis.html
https://wiki.typo3.org/Composer
Erklrung der Versions Einschrnkungenhttps://getcomposer.org/doc/articles/versions.md
https://getcomposer.org/https://packagist.org/https://composer.typo3.org/https://composer.typo3.org/satis.htmlhttps://wiki.typo3.org/Composerhttps://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.
http://creativecommons.org/licenses/by-sa/4.0/