Как использовать modman для управления модулями в github?

12

Я пытаюсь использовать modman( https://github.com/colinmollenhour/modman ) для управления своими расширениями в github.

Сначала я пытаюсь добавить MagePsycho_Someextрасширение как демо.

До сих пор я сделал следующие шаги

/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. Разработал расширение 'MagePsycho_Someext' в / var / www / magento-dir со следующими файлами
    • приложение / и т.д. / модули / MagePsycho_Someext.xml
    • Приложение / код / ​​местные / MagePsycho / Someext / и т.д. / config.xml
    • Приложение / код / ​​местные / MagePsycho / Someext / Helper / Data.php

10 Добавлена ​​информация о сопоставлении файлов в /var/www/magento-dir/.modman/Someext/modman как

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

но получил следующие ошибки:

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

Примечания : я разрабатываю расширения в /var/www/magento-dir/. И вы хотите развернуть эти расширения (по одному на репозиторий) в github, используя modman. Когда я закончу разработку модуля, я хочу, чтобы эти файлы были добавлены в хранилище. Для этого я использовал файл .modman / * / modman для отображения. Но не может заставить его работать.

Где и что мне не хватает?
Или это неправильный подход?

[РЕДАКТИРОВАТЬ]

Я только что понял, что мой подход прямо противоположен. Во-первых, вы должны добавить файлы расширений и modman с сопоставлениями путей, поместить их в репозиторий и затем использовать modman clone.

Как бы вы поступили, если бы сначала разработали расширение, а затем использовали modman для внесения изменений в репозиторий?

MagePsycho
источник
1
В данный момент не могу дать исчерпывающий ответ, но обычно вам не следует вносить изменения в папку .modman. Это хорошая отправная точка github.com/colinmollenhour/modman/wiki/Tutorial
Zifius
Я не уверен, где управлять отображениями. в / var / www / MagePsycho_Extensions / Someext / modman? Если да, то нужно перенести изменения в github и вытащить его с помощью обновления modman?
МагПсихо
Я не понимаю, почему вы ссылаетесь на расширение напрямую, если вы находитесь в репо, вы можете скачать его прямо оттуда.
Аллан МакГрегор
Внутри вашего репозитория root должен быть файл modman с определенными сопоставлениями.
Аллан МакГрегор
Подождите, вы пытаетесь вытянуть расширение из / var / www / magento-dir / в отдельный репозиторий?
Аллан МакГрегор

Ответы:

7

Наконец, я выяснил способ управления модулями Magento с помощью Modman (хотя это не идеальный способ, но он работает для меня)

Предположения

/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. Теперь разработайте расширение 'MagePsycho_Someext' в /var/www/magento-dir/.modman/Someext со следующими файлами
    • приложение / и т.д. / модули / MagePsycho_Someext.xml
    • Приложение / код / ​​местные / MagePsycho / Someext / и т.д. / config.xml
    • Приложение / код / ​​местные / MagePsycho / Someext / Helper / Data.php

10 Добавьте информацию о сопоставлении файлов в /var/www/magento-dir/.modman/Someext/modman как

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 Вот и все.

Таким образом, вы будете работать с каталогом magento-dir / .modman / Someext, который связан с magento-dir. Всякий раз, когда вы добавляете новые файлы в свое расширение, вы должны обновлять файл modman и запускать его, чтобы modman repairподдерживать актуальность символических ссылок.

Если у кого есть лучший подход, пожалуйста, поделитесь.

MagePsycho
источник
6

Так что мой совет здесь , так как у вас есть локальная копия расширения в любом случае , то использовать linkи deployкоманды , а неclone

В вашем случае вы просто позвоните:

  1. modman init
  2. modman link ../Your_Extension_Path (если это одно расширение)
  3. modman deploy Your_Extension_Path

Этот метод требует, чтобы у вас в каталоге расширений был файл modman с сопоставлениями файлов, но, судя по вашим комментариям, у вас это уже есть.

Насколько я понимаю, файлы должны быть сначала в расширении dir, затем они будут связаны с magento dir, поэтому, когда вы будете в будущем вносить изменения в файлы в magento, файлы расширений также будут изменены. Может быть, есть способ создать расширение modman из каталога magento, но, к сожалению, я этого не знаю.

Простой способ скопировать файлы из Magento в каталог расширений - это открыть два проводника окон для окон и скопировать их или использовать что-то вроде полуночного командира.

Примечание: я использовал только модман для версии PHP, но этот процесс работает для этого

Дэвид Мэннерс
источник
/ var / www / MagePsycho_Extensions / будет иметь больше расширений, например: Extension1, Extension2 с разными репозиториями. Будет ли это иметь значение, используя ваш подход?
MagePsycho
не уверен, но я думаю, что вам просто нужно два уровня, чтобы связать, как, ../MagePsycho_extenstion/Extension1а затем развернуть будет MagePsycho_extenstion/Extension1или Extension1я не уверен, не попробовав это.
Дэвид Мэннерс
После перехода по ссылке и развертыванию выдает ту же ошибку. ПРЕДУПРЕЖДЕНИЕ. Цель не существует (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho
@MagePsycho, а у вас есть этот файл в вашем расширении?
Дэвид Мэннерс
2
Насколько я понимаю, файлы должны быть сначала в расширении dir, затем они будут связаны с magento dir, поэтому, когда вы будете в будущем вносить изменения в файлы в magento, файлы расширений также будут изменены. Может быть, есть способ создать расширение modman из каталога magento, но, к сожалению, я этого не знаю.
Дэвид Мэннерс