Magento Projekte mit Composer aufsetzen und verteilen

Magento Projekte mit Composer aufsetzen und verteilen

Präsentation zum Magento Stammtisch vom 10. März 2015 in Bern

961dfec60de2d5e3338cc85f65f43391?s=128

Marcel Hauri

March 10, 2015
Tweet

Transcript

  1. MAGENTO STAMMTISCH Bern 10. März 2015

  2. Tschou zäme

  3. Marcel Hauri @mhauri ! ! ! Magento Projekte mit Composer

    aufsetzen und verteilen
  4. staempfli.com

  5. Ausgangslage • Verschiedene Deployment Strategien
 Composer, Chopin (wtf?), Modman, n98-magerun,

    FTP etc. • Aufwändiges Projektsetup • Aufwendige Dokumentation nötig
  6. Ziele • Setup und Deployment einfach halten • Magento Source

    und Extensions getrennt installieren • Flexible Deployment Strategie
  7. Lösung https://getcomposer.org/

  8. Lösung AOEpeople/composer-installers von Fabrizio Branca

  9. {
 "minimum-stability":"dev",
 "repositories": [
 {
 "type": "composer",
 "url": "http://packages.firegento.com"
 },


    {
 "type": "package",
 "package": {
 "name": "magento/ce",
 "version": "1.9.0.1",
 "type": "magento-source",
 "dist": {
 "url": "http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz",
 "type": "tar"
 }
 }
 }
 ],
 "extra": {
 "installer-paths": {
 "htdocs": ["type:magento-source"],
 "htdocs/.modman/{$name}/": ["type:magento-module"]
 }
 },
 "require": {
 "aoepeople/composer-installers": "0.0.1",
 "magento/ce": "1.9.0.1",
 "staempfli/product-attachment": "1.0.1"
 },
 "scripts": {
 "post-install-cmd": [
 " cd htdocs/ && modman deploy-all"
 ],
 "post-update-cmd": [
 " cd htdocs/ && modman deploy-all"
 ]
 }
 }
  10. {
 "type": "composer",
 "url": "http://packages.firegento.com"
 } Composer Repository

  11. {
 "type": "package",
 "package": {
 "name": "magento/ce",
 "version": "1.9.0.1",
 "type":

    "magento-source",
 "dist": {
 "url": "http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz",
 "type": "tar"
 }
 }
 }
 Magento Source
  12. "extra": {
 "installer-paths": {
 "htdocs": ["type:magento-source"],
 "htdocs/.modman/{$name}/": ["type:magento-module"]
 } }


    Installations Pfade
  13. "require": {
 "aoepeople/composer-installers": "0.0.1",
 "magento/ce": "1.9.0.1",
 "staempfli/product-attachment": "1.0.1"
 }
 Pakete

    & Extensions
  14. "scripts": {
 "post-install-cmd": [
 "cd htdocs/ && modman deploy-all"
 ],


    "post-update-cmd": [
 "cd htdocs/ && modman deploy-all"
 ]
 }
 Flexible Deployment Strategie
  15. {
 "minimum-stability":"dev",
 "repositories": [
 {
 "type": "composer",
 "url": "http://packages.firegento.com"
 },


    {
 "type": "package",
 "package": {
 "name": "magento/ce",
 "version": "1.9.0.1",
 "type": "magento-source",
 "dist": {
 "url": "http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz",
 "type": "tar"
 }
 }
 }
 ],
 "extra": {
 "installer-paths": {
 "htdocs": ["type:magento-source"],
 "htdocs/.modman/{$name}/": ["type:magento-module"]
 }
 },
 "require": {
 "aoepeople/composer-installers": "0.0.1",
 "magento/ce": "1.9.0.1",
 "staempfli/product-attachment": "1.0.1"
 },
 "scripts": {
 "post-install-cmd": [
 "cd htdocs/ && modman deploy-all"
 ],
 "post-update-cmd": [
 "cd htdocs/ && modman deploy-all"
 ]
 }
 }
  16. ✓ Schnelles Projekt Setup und Deployment ✓ Magento Source direkt

    von Magento ✓ Nur wenig Dokumentation nötig, da Setup vereinheitlicht und für alle Projekte gleich ✓ Einfache Versionsverwaltung einzelner Pakete Vorteile
  17. - Extensions in .modman/ Verzeichnis werden nicht automatisch in der

    Versionskontrolle von PhpStorm erkannt. Nachteile
  18. - Magento Upgrade auf neue Version löscht das aktuelle Magento

    Verzeichnis ohne Hinweis Nachteile
  19. Optimale Vorgehensweisen

  20. composer.lock Wer ignoriert es? (.gitignore)

  21. composer.lock Schnelle Installationen bei geringem Speicherverbrauch

  22. composer.lock Reproduzierbare Installationen

  23. composer.lock Wer ignoriert es? (.gitignore) Jordi Boggiano, Composer Lead Developer

  24. composer update? oder composer install? Deployment

  25. composer install Dadurch wird sichergestellt, das die gleichen Abhängigkeiten in

    der Produktion wie in der Entwicklung eingesetzt werden. Deployment Composer prüft keine Abhängigkeiten und macht keine Version Lookups, dadurch sehr schnell.
  26. "require": {
 "aoepeople/composer-installers": "dev-master",
 "magento/ce": "*",
 "staempfli/product-attachment": ">=1.0"
 }
 Versionierung

  27. "require": {
 "aoepeople/composer-installers": "0.0.1",
 "magento/ce": "1.9.0.1",
 "staempfli/product-attachment": "1.0.1"
 }
 Versionierung

  28. Fragen?

  29. • Composer Demo
 https://github.com/staempfli/magento-composer-demo • Meet Magento Schweiz Präsentation
 https://speakerdeck.com/mhauri/install-magento-with-

    composer-1 
 
 Video #MM14CH
 https://www.youtube.com/watch?v=H_bOgh-W8WU