12
Setup-Skripte in Magento

PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

Setup-Skripte in Magento

Page 2: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

Benjamin Wunderlich

@bwunderlich [email protected]

Page 3: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Motivation

● Datei-Deployments: svn, Git, FTP :)

● Datenbank-Deployments: Setup-Skripte

– Datenbank-Tabellen

– Entities / Attribute

– CMS-Elemente

– Systemkonfiguration

– usw.

Page 4: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Setup-Skripte

● Teil eines Moduls

● Abhängig von der Modulversion

● Install-Scripte für Erstinstallation des Moduls

● Upgrade-Scripte für Modul-Updates

● Mysql: Datenbank-Strukturen anlegen

● Data: Daten hinzufügen

– ab Magento 1.6: eigener Ordner● Eigene Setup-Klassen möglich, Core-Standard:

– Mage_Core_Model_Resource_Setup

– Mage_Eav_Model_Entity_Setup

Page 5: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Beispiel

Page 6: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Funktionsweise

● Installationsvorgang von Config-Cache abhängig

● Aktuelle Versionsnummern: DB-Tabelle core_resource

● Ausführung im Frontend und Backend

● Keine Ausführung durch Cronjob, kein manuelles Anstoßen möglich

Page 7: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Funktionsweise II

● Prüfen auf neue Module → Install-Scripte + Upgrade-Scripte ausführen

● Prüfen auf Modul-Updates → Upgrade-Scripte ausführen

● Lücken in Versionen werden übersprungen

● Multiple Install-Scripte: Letztes Install-Script verwenden und Upgrades ausführen

0.1.0

I

UU U0.1.1 0.3.00.2.0 0.4.0

I0.5.0

U U0.6.0

Page 8: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Best Practice Shopwerft

● Setup-Modul im Shop

– Startkonfiguration setzen

– Modul unabhängige Konfigurationen● Versionierung nach Datum

z.B. mysql4-upgrade-2014.06.25.0-2014.06.25.1.php

● Idempotenz (Mehrfachausführung): f(f(x)) = f(x)

Page 9: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Probleme

● Sehr programmierlastig, nicht deskriptiv (z.B. XML)

● Bei aktivem Config-Cache nicht atomar

● Jeder Nutzer führt Install-/Upgrade-Scripte aus

● Ggf. parallele Mehrfachausführung (→ Idempotenz!)

● Fehlerhafte Skripte schießen Shop ab (Frontend!)

● Gleichzeitige Setup-Skripte mehrerer Entwickler

● Deployment-Reihenfolge ist wichtig06.01

UU U06.02 06.0406.03 06.05

I06.06

U U06.07

2. 1.

Page 10: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Vorteile

● Höhere Konsistenz in mehreren Systemen (dev, staging, live)

● Chronologische Dokumentation von Änderungen über VCS (z.B. Git)

● Kein Vergessen von Konfigurationsänderungen in Launch-Prozessen

● Verkürzung von Deployments

● Verbesserte Modularität

Page 11: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

18. Magento-Stammtisch Hamburg25.06.2014

Ressourcen● Magento Knowledge Base

http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-6-magento-setup-resources

● Webguys-Blogpost (Bastian Ike)http://www.webguys.de/magento/adventskalender/turchen-23-installscripte-in-magento/

● Inchoo-Bloghttp://inchoo.net/ecommerce/magento/magento-install-install-upgrade-data-and-data-upgrade-scripts/

Page 12: PhpStorm - besser, schneller, entspannter Magento entwickeln Stammtisch...18. Magento-Stammtisch Hamburg 25.06.2014 Setup-Skripte Teil eines Moduls Abhängig von der Modulversion Install-Scripte

Viel Spaß!