2013-04-22 4 views
2

확장 프로그램을 설치할 수있는 프로젝트에서 작업 중입니다. 즉, 핵심 프로그램을 설치 한 다음 타사 확장 프로그램을 다운로드하여 추가 할 수 있습니다.작곡가 종속성을 공유

같은 종속성의 동일한 버전을 필요로하는 두 개의 개별 확장이있는 경우 (예를 들어 두 개의 확장에 AWS SDK가 필요한 경우) 작성자가 두 개의 사본을 다운로드하지 못하게 만드는 방법이 있습니까? 같은 의존성의?

답변

2

확장 프로그램을 작성자 패키지로 만들 수 있습니다. 그런 다음 자신의 패키지에 대한 참조 파일을 기본 파일 composer.json에 추가하십시오. 예를 들어

:

root/ 
    my-extension-a/ 
     composer.json (require: dep-a, dep-b) 
     vendor/ 
      dep-a/ 
      dep-b/ 
    my-extension-b/ 
     vendor/ 
      dep-a/ 
      dep-c/ 
     composer.json (require dep-a, dep-c) 

    main-project/ 
     composer.json (require my-extension-a, my-extension-b) 
     vendor/ 
      my-extension-a/ 
      my-extension-b/ 
      dep-a/ 
      dep-b/ 
      dep-c/ 

주요 프로젝트의 composer.json 파일은 다음과 같이 표시됩니다

"require": { 
     "parent5446/my-extension-a": "dev-master", 
     "parent5446/my-extension-b": "dev-master" 
} 

당신은 packagist에 확장을 공개 할 수 있습니다. 또는 Satis를 사용하여 개인 저장소를 참조 할 수 있습니다. 이 기능은 여기에 잘 설명되어 있습니다. Managing private packages with Satis and Composer

관련 문제