Wie verwende ich Modman für die Verwaltung von Modulen in Github?


12

Ich versuche modman( https://github.com/colinmollenhour/modman ) zu verwenden, um meine Erweiterungen in Github zu verwalten.

Zuerst versuche ich, eine MagePsycho_SomeextErweiterung als Demo hinzuzufügen .

Bisher habe ich folgende Schritte durchgeführt

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repository Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman clone git@github.com:magepsycho/Someext.git
  9. Entwickelte die Erweiterung 'MagePsycho_Someext' in / var / www / magento-dir mit den folgenden Dateien
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Die Datei-Mapping-Informationen in /var/www/magento-dir/.modman/Someext/modman as wurden hinzugefügt

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman update Someext

habe aber folgende fehler bekommen:

WARNING: Target does not exist (.modman/Someext/modman):
 app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml

Anmerkungen : Ich entwickle Erweiterungen in /var/www/magento-dir/. Und wollen diese Erweiterungen (eine pro Repository) in Github mit Modman bereitstellen. Wenn ich mit der Modulentwicklung fertig bin, möchte ich, dass diese Dateien zum Repository hinzugefügt werden. Dafür habe ich die .modman / * / modman-Datei für die Zuordnung verwendet. Aber nicht in der Lage, es zum Laufen zu bringen.

Wo und was fehle ich?
Oder ist das der falsche Ansatz?

[BEARBEITEN]

Mir ist gerade klar geworden, dass mein Ansatz genau umgekehrt ist. Zuerst müssen Sie Erweiterungsdateien und Modman mit Pfadzuordnungen hinzufügen, zum Repo verschieben und dann mit ziehen modman clone.

Wie würden Sie vorgehen, wenn Sie zuerst die Erweiterung entwickeln und dann Modman verwenden, um Änderungen am Repo vorzunehmen?


1
Ich kann im Moment keine umfassende Antwort geben, aber im Allgemeinen sollten Sie keine Änderungen im Ordner .modman vornehmen. Dies ist ein guter Ausgangspunkt github.com/colinmollenhour/modman/wiki/Tutorial
Zifius

Ich bin nicht sicher, wo ich die Zuordnungen verwalten soll. in / var / www / MagePsycho_Extensions / Someext / modman? Wenn ja, müssen dann die Änderungen auf Github übertragen und mit Modman Update abgerufen werden?
MagePsycho

Ich verstehe nicht, warum Sie die Erweiterung direkt referenzieren. Wenn Sie sich in einem Repo befinden, können Sie sie direkt von dort herunterladen.
Allan MacGregor

In Ihrem Erweiterungs-Root-Repository sollte sich eine Modman-Datei mit den definierten Zuordnungen befinden.
Allan MacGregor

Warten Sie, um die Erweiterung von / var / www / magento-dir / in ein separates Repo zu ziehen?
Allan MacGregor

Antworten:


7

Schließlich habe ich herausgefunden, wie man Magento-Module mit Modman verwaltet (nicht der perfekte Weg, aber er funktioniert für mich)

Annahmen

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repo Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman link /var/www/MagePsycho_Extensions/Someext
  9. Entwickeln Sie nun die Erweiterung 'MagePsycho_Someext' in /var/www/magento-dir/.modman/Someext mit den folgenden Dateien
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Fügen Sie die Datei-Mapping-Informationen in /var/www/magento-dir/.modman/Someext/modman als hinzu

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman repair
12 cd /var/www/magento-dir/.modman/Someext
13 git add app/etc/modules/MagePsycho_Someext.xml app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/Helper/Data.php
14 git commit -m 'Extension files updated.'
15 git push origin master
16 Das ist alles.

Zusammenfassend arbeiten Sie am Verzeichnis magento-dir / .modman / Someext, das mit magento-dir verknüpft ist. Immer wenn Sie neue Dateien zu Ihrer Erweiterung hinzufügen, müssen Sie die Modman-Datei aktualisieren und ausführen modman repair, um die Symlinks auf dem neuesten Stand zu halten.

Wenn jemand eine bessere Herangehensweise hat, teile dies bitte mit.


6

Mein Rat hier ist also, dass Sie ohnehin eine lokale Kopie der Erweiterung haben und dann die Befehle linkund deployanstatt der verwendenclone

In Ihrem Fall würden Sie einfach anrufen:

  1. modman init
  2. modman link ../Your_Extension_Path (wenn dies eine einzelne Erweiterung ist)
  3. modman deploy Your_Extension_Path

Für diese Methode muss die Modman-Datei in Ihrem Erweiterungsverzeichnis mit Dateizuordnungen vollständig sein, aber aus Ihren Kommentaren geht hervor, dass Sie diese bereits haben.

Nach meinem Verständnis müssen sich die Dateien zuerst im Erweiterungsverzeichnis befinden, sie werden dann mit dem Magento-Verzeichnis verknüpft. Wenn Sie also zukünftige Änderungen an den Dateien unter Magento vornehmen, werden auch die Erweiterungsdateien geändert. Vielleicht gibt es eine Möglichkeit, eine Modman-Erweiterung aus einem Magento-Verzeichnis zu erstellen, aber ich kenne sie leider nicht.

Eine einfache Möglichkeit, Dateien von Magento in ein Erweiterungsverzeichnis zu kopieren, besteht darin, entweder zwei Windows Explorer für Windows zu öffnen und diese zu kopieren oder so etwas wie Mitternachtskommandeur zu verwenden

Hinweis: Ich habe nur den Modman für die PHP-Version verwendet, aber dieser Prozess funktioniert dafür


/ var / www / MagePsycho_Extensions / wird weitere Erweiterungen haben, zB Extension1, Extension2 mit verschiedenen Repositories. Wird das bei Ihrem Ansatz einen Unterschied machen?
MagePsycho

Ich bin mir nicht sicher, aber ich denke, Sie müssten nur zwei Ebenen wie verknüpfen ../MagePsycho_extenstion/Extension1und dann bereitstellen, MagePsycho_extenstion/Extension1oder Extension1ich bin mir nicht sicher, ohne es auszuprobieren.
David Manners

Nachdem Sie Ihren Link & deploy Ansatz gibt den gleichen Fehler ACHTUNG: Ziel nicht existiert (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho

@MagePsycho und Sie haben diese Datei tatsächlich in Ihrer Erweiterung?
David Manners

2
Nach meinem Verständnis müssen sich die Dateien zuerst im Erweiterungsverzeichnis befinden, sie werden dann mit dem Magento-Verzeichnis verknüpft. Wenn Sie also zukünftige Änderungen an den Dateien unter Magento vornehmen, werden auch die Erweiterungsdateien geändert. Vielleicht gibt es eine Möglichkeit, eine Modman-Erweiterung aus einem Magento-Verzeichnis zu erstellen, aber ich kenne sie leider nicht.
David Manners
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.