composer && modman on magento

Einführung

Andreas Mautz || @mautz_et_tong

webvisum GmbH

Was?

Kurze Einführung in composer und modman am Beispiel magento

Wer?

  • Andreas Mautz
  • programmiert seit 16 Jahren
  • macht magento seit 2008
  • beschäftigt sich mit Deployment-Prozessen, Entwicklungsinfrastrukturen und Wissensmanagement seit 2011

composer

Definition

Composer ist ein Werkzeug zur Abhängigkeitsverwaltung in PHP. Mittels recht einfacher Syntax ist es möglich, Paketabhängigkeiten zu definieren und diese Bibliotheken durch composer in das jeweilige Projekt installieren zu lassen.

Beispiel

Konfigurationsdatei composer.json

                            {
    "name":"diglin/diglin_uioptimization",
    "type":"magento-module",
    "license":"OSL-3.0",
    "homepage":"https://github.com/diglin/Diglin_UIOptimization",
    "description":"Minify and optimize CSS and JS files. Configurable library to suit your installation.",
    "authors":[
        {
            "name":"Sylvain Rayé",
            "email":"{firstname}.{lastname}@diglin.com"
        }
    ],
    "require":{
        "magento-hackathon/magento-composer-installer":"*"
    }
}
                        

Warum?

  • keine systemweite! Installation von Pakteten sondern projektspezifisch
  • recht einfache Syntax
  • gut verzahnt in das magento-Development-Ökosystem
  • aber nur bei recht kundenneutralen Paketen geeignet, da spezielle Anpassungen immer einzeln zu handeln sind

modman

Definition

modman (Module-Manager) ermöglicht Module getrennt von der (magento-) Installation zu halten und zu pflegen. Die Inhalte der Module werden per Symlink in die eigentliche (magento-)Installation gelegt

Beispiel

Konfigurationsdatei modman


src/app/code/community/Diglin/UIOptimization                    app/code/community/Diglin/UIOptimization
src/app/design/frontend/base/default/layout/uioptimization.xml  app/design/frontend/base/default/layout/uioptimization.xml
src/app/design/frontend/base/default/template/uioptimization    app/design/frontend/base/default/template/uioptimization
src/app/etc/modules/Diglin_UIOptimization.xml                   app/etc/modules/Diglin_UIOptimization.xml
src/lib/*                                                       lib/
src/skin/frontend/base/default/css/w3c-validator.css            skin/frontend/base/default/css/w3c-validator.css

Warum?

  • saubere Trennung von magento core | Eigenentwicklung | Module
  • "nah" am git flow
  • ebenfalls gut verzahnt in das magento-Development-Ökosystem

Zusammenfassung

Quellen && nützliche Links

composer


modman


combined

Fragen?

Danke!

Hinweis in eigener Sache:
Magento Certification Lerngruppe