Composer und TYPO3

1.656 Aufrufe

Veröffentlicht am

Composer für die Installation von TYPO3 und Extensions nutzen.

Veröffentlicht in: Internet
1 Kommentar
1 Gefällt mir
Statistik
Notizen
  • Nice. I have linked your slides in my introduction to the topic at https://usetypo3.com/typo3-and-composer.html.
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
Keine Downloads
Aufrufe
Aufrufe insgesamt
1.656
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
112
Aktionen
Geteilt
0
Downloads
11
Kommentare
1
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Composer und TYPO3

  1. 1. TYPO3Munich User Group 2. Februar 2016
  2. 2. Peter Kraume Senior TYPO3 Developer Twitter: @cybersmog Mail: peter.kraume@bgm-gmbh.de Slides: http://de.slideshare.net/pk77/
  3. 3. 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.
  4. 4. Und was bedeutet das jetzt?
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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"
  11. 11. 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
  12. 12. 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" } }
  13. 13. Abhängigkeiten installieren $ composer install
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. packagist.org ✓ registrierte Pakete ✓ 84.395 ✓ verfügbare Versionen ✓ 426.883 ✓ installierte Pakete ✓ 1.582.775.135
 (seit 13.04.2012)
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. Ä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",
  22. 22. Fragen ?
  23. 23. 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
  24. 24. 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.

×