App / etc / config.php in VCS oder nicht

15

Ich habe eine Frage bezüglich der Datei app/etc/config.php.

Diese hier beschriebene und definierte Datei :

Magento base dir/app/etc/config.php enthält die Liste der installierten Module, Themes und Sprachpakete.

Ist wie app/etc/modules/*in Magento 1 (Normalerweise habe ich diese Dateien in VCS).

Aber in Magento 2 wird empfohlen, nicht in VCS (Official .gitignore ) zu teilen .

Ich habe einige Fragen oder verwende Fälle für die Freigabe in VCS, möchte aber Verstehen, da das Hinzufügen in VCS nicht empfohlen wird

  1. Produktionsumgebung (mit Deploy-System Capistrano/Deployer, etc)
    • Sie machen einen neuen Einsatz ... und brauchen ermöglichen neue / s Modul / s php bin/magento module:enable VendorName_NewModulevorsetup:upgrade
      • Wie gehst du mit dieser Situation um?
    • Sie führen eine neue Bereitstellung durch und müssen (für jede Situation) die neuen Module vorher deaktivierenphp bin/magento module:disable VendorName_NewModulesetup:upgrade
      • Wie gehst du mit dieser Situation um?
  2. Lokale Umgebung

    • Wenn Sie nicht möchten, dass Ihr Team ein bestimmtes Modul aktiviert / deaktiviert
      • Wie gehst du mit dieser Situation um?
  3. Inszenierung der Umwelt

    • Wie können Sie die gleiche Konfiguration von produktionsfähigen / deaktivierten Modulen erreichen, wenn Sie diese nicht gemeinsam nutzen? app/etc/config.php
      • Wie gehst du mit dieser Situation um? Sie müssen manuell machen?

Was ist Ihre Sichtweise oder wie gehen Sie mit diesen Situationen um?

Vielen Dank

* VCS: Versionskontrollsystem, zB: git, svn usw

osrecio
quelle

Antworten:

13

Es ist nichts Falsches daran, config.phpin VCS aufzunehmen, wenn Ihre Anforderungen darauf beruhen, dass die Konfiguration in verschiedenen Umgebungen gleich ist, insbesondere in Bezug auf den Ein / Aus-Zustand Ihrer Module. Der Nebeneffekt dabei ist die Einschränkung, die Sie sich selbst auferlegen, wenn Sie dieselben Themen, Sprachpakete usw. auch auf jedem haben.

Für Magento 2.2 werden wir einige Verbesserungen vornehmen, um das Konfigurationsmanagement flexibler zu gestalten und verschiedene Bereitstellungsworkflows zu unterstützen. Sie haben eine Datei, die die gesamte gemeinsam genutzte Konfiguration enthalten soll app/etc/config.php(für die Konfiguration, die wahrscheinlich in allen Umgebungen gleich ist und in VCS aufbewahrt wird). Sie werden eine andere Datei haben, die systemspezifische Konfiguration enthalten soll app/etc/env.php(soll Konfiguration enthalten, die sich wahrscheinlich von Entwickler-, Staging- und Produktionssystemen unterscheidet).

In der Zwischenzeit haben wir einige Bereitstellungsansätze aus der Community zusammengestellt, die Sie auf dieser Seite finden, falls dies hilfreich sein sollte.

mkotov
quelle
Haben Sie ein offizielles Datum für die Veröffentlichung von 2.2? Haben Sie zu Ihrem Kommentar einen Verweis in Github, um ein wenig mit dieser Konfiguration für Bereitstellungsworkflows zu vertiefen?
Osrecio
2.2 ist noch in Arbeit, sollte aber in Q3 erscheinen. Mir ist noch nichts in Github bekannt, mit dem ich spielen könnte ...
mkotov