github에서 모듈을 관리하기 위해 modman을 사용하는 방법은 무엇입니까?


12

github에서 내 확장을 관리 하기 위해 modman( https://github.com/colinmollenhour/modman ) 을 사용하려고합니다 .

먼저 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. 다음 파일을 사용하여 / var / www / magento-dir에서 확장명 'MagePsycho_Someext'를 개발했습니다.
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / 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/입니다. 그리고 modman을 사용하여 github에 이러한 확장 (저장소 당 하나)을 배포하려고합니다. 모듈 개발을 마치면 해당 파일을 리포지토리에 추가하려고합니다. 이를 위해 매핑에 .modman / * / modman 파일을 사용했습니다. 그러나 작동시킬 수 없습니다.

어디에 그리고 무엇을 놓치고 있습니까?
아니면 이것이 잘못된 접근입니까?

[편집하다]

방금 내 접근 방식이 반대라는 것을 깨달았습니다. 먼저, 경로 매핑을 사용하여 확장 파일과 modman을 추가하고 repo로 푸시 한 다음를 사용하여 가져와야합니다 modman clone.

확장을 처음 개발 한 다음 modman을 사용하여 변경 사항을 저장소에 푸시하면 어떻게 하시겠습니까?


1
현재 포괄적 인 답변을 제공 할 수는 없지만 일반적으로 .modman 폴더에서 내용을 수정해서는 안됩니다. 이것은 좋은 출발점입니다. github.com/colinmollenhour/modman/wiki/Tutorial
Zifius

매핑을 관리 할 위치를 잘 모르겠습니다. / var / www / MagePsycho_Extensions / Someext / modman? 그렇다면 변경 사항을 github에 푸시하고 modman update를 사용하여 가져와야합니까?
MagePsycho

확장 프로그램을 직접 참조하는 이유를 이해하지 못합니다. 저장소에있는 경우 확장 프로그램을 직접 다운로드 할 수 있습니다.
Allan MacGregor

확장 루트 저장소에는 매핑이 정의 된 modman 파일이 있어야합니다.
Allan MacGregor

/ var / www / magento-dir /에서 확장을 별도의 저장소로 가져 오려고합니까?
Allan MacGregor

답변:


7

마지막으로 modman을 사용하여 Magento 모듈을 관리하는 방법을 알아 냈습니다 (완벽한 방법은 아니지만 저에게 효과적입니다)

가정

/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. 이제 다음 파일을 사용하여 /var/www/magento-dir/.modman/Someext에서 'MagePsycho_Someext'확장자를 개발하십시오.
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / 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과 심볼릭 링크 된 magento-dir / .modman / Someext 디렉토리에서 작업하게됩니다. 확장에 새 파일을 추가 할 때마다 modman 파일을 업데이트하고 실행 modman repair하여 심볼릭 링크를 최신 상태로 유지해야합니다.

더 나은 접근 방식을 가진 사람이 있다면 공유하십시오.


6

그래서 내 조언은 어쨌든 확장의 로컬 사본을 가지고 있기 때문에 linkdeploy대신 명령 을 사용 하기 때문에clone

귀하의 경우 간단히 전화하십시오 :

  1. modman init
  2. modman link ../Your_Extension_Path (이것이 단일 확장 인 경우)
  3. modman deploy Your_Extension_Path

이 방법을 사용하려면 파일 매핑을 사용하여 확장 디렉토리에서 modman 파일을 완성해야하지만 주석에서 이미이 파일을 가지고있는 것 같습니다.

내 이해에서 파일은 먼저 확장 디렉토리에 있어야하며 magento 디렉토리에 링크되어 magento 아래의 파일을 나중에 편집하면 확장 파일도 변경됩니다. 아마도 magento 디렉토리에서 modman 확장을 만드는 방법이 있지만 슬프게도 그것을 알지 못합니다.

Magento에서 확장 디렉토리로 파일을 복사하는 간단한 방법은 두 개의 Windows 탐색기를 사용하여 창을 열어 복사하거나 자정 사령관 과 같은 것을 사용하는 것입니다.

참고 : PHP 버전에는 modman 만 사용했지만이 프로세스는 작동합니다.


/ var / www / MagePsycho_Extensions /는 다른 리포지토리를 가진 Extension1, Extension2와 같은 추가 확장명을 갖습니다. 접근 방식을 사용하면 차이가 있습니까?
MagePsycho

확실하지 않지만 링크를 연결하기 위해 두 가지 수준이 필요 ../MagePsycho_extenstion/Extension1하고 배포 MagePsycho_extenstion/Extension1하거나 Extension1시도하지 않고 확실하지 않은 것으로 생각합니다.
David Manners

링크 및 배포 접근 방식을 따른 후에도 동일한 오류가 발생합니다. 경고 : 대상이 존재하지 않습니다 (.modman / MagePsycho_Someext / modman) : app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho

@MagePsycho 그리고 실제로 확장 에이 파일이 있습니까?
David Manners

2
내 이해에서 파일은 먼저 확장 디렉토리에 있어야하며 magento 디렉토리에 링크되어 magento 아래의 파일을 나중에 편집하면 확장 파일도 변경됩니다. 아마도 magento 디렉토리에서 modman 확장을 만드는 방법이 있지만 슬프게도 그것을 알지 못합니다.
David Manners
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.