2014-01-10 3 views
3

Symfony 나 Sylius와 비슷한 번들 구조를 만들려고합니다. 하위 폴더에 하위 번들 집합이있는 상위 패키지가 있습니다. EF symfony/framework-standard-edition은 Symfony/Component에 번들을두고 Sylius는 Sylius/Src에 넣습니다. 이들은 private git repo에 저장된 개인 번들입니다. 그래서 저는 packagist를 사용할 수 없습니다.작곡가 PHP 부모 묶음 src 폴더 안에 번들 설치

계획은 같은 폴더 구조를 가지고있다 : - 패키지 A가 번들을 필요로 패키지 A에 포함 된 C -

/vendor/MyNamespace/PackageA/src/BundleA 
/vendor/MyNamespace/PackageA/src/BundleB 
/vendor/MyNamespace/PackageA/src/BundleC 
/vendor/MyNamespace/BundleD 
/vendor/MyNamespace/BundleE 

은 그래서 번들 C. 그래서 내가 MyNamespace에이 필요합니다 단지 것/PackageA와 3 개의 패키지가 PackageA에 설치됩니다.

나는 목표 디렉토리하지만이의 repos의 개인 설정되어

/vendor/MyNamespace/BundleA/PackageA/BundleA 

내부의 퍼팅 BundleA, 나는 그들을 처리하는 satis을 사용한다 설정하려고했습니다?

답변

1

비공개 repos는 만족 스럽거나 비공개 (git) repos가 http://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository 구성을 사용 중입니다.

내가 당신의 패키지를 각각 별도의 패키지에 사용하는 것이 내가 목표 디렉토리가

http://getcomposer.org/doc/04-schema.md#target-dir 사용되지 않는 한, 목표 디렉토리 놀 생각을 드롭 것입니다하지만 당신에게 도움이 될 수 있습니다

: http://seld.be/

+0

예 개인 저장소를 나열하는 데 리포지토리를 사용하고 있습니다. 경로를 변경하는 데 어려움을 겪고 있습니다. 부모 번들에 번들 (또는 구성 요소) 세트를 포함하려고합니다. EG/vendor/MynameSpace/src에는 BundleA와 BundleB가 포함됩니다. – pfwd

+0

왜 그럴까요? 그 이점은 무엇입니까? 작곡가는 평평한 구조를 사용하여 일하고 있습니다, 나는 그것이 가능하다고 생각하지 않습니다. – jasir

+0

내 번들의 구조를 정리할 것입니다. Symfony와 Sylius는 개별적으로 사용되거나 전체적으로 사용될 수있는 묶음이 많이 있습니다. 나는 똑같이하고 싶다. wheelBundle과 doorBundle과 같은 자동차 부품을 다루는 묶음이 여러 개 있다고 가정 해 보겠습니다. 내가 원하는 것은 carBundle 안에이 두 가지를 포함시키는 것입니다. vendor/CarBundle/src/WheelBundle과 vendor/carBundle/src/doorbundle에 보관됩니다. 자동차 번들은 이러한 구성 요소의 컨테이너 (심포니 프레임 워크 번들처럼)처럼 작동합니다. – pfwd

0

git 하위 트리를 사용하는 솔루션을 생각해 냈습니다. 하위 구성 요소를 자체 리포지토리로 분할하고 상위 리포지토리의 하위 머리글로 추가합니다. EG : 자동차에서

/Car.git (Parent repository) 
/Door.git (Child component of car) 
/Engine.git (Child component of car) 

는 :

/Car/src/ 
     DoorBundle 
     EngineBundle 
    /bin (Contains some generic commands) 
    /composer.json (Contains requirements for Door and engine) 

문은 문을 필요로하지 않는 엔진과 엔진을 필요로하지 않습니다. 그러나 자동차는 둘 다 필요합니다.

git 하위 트리를 사용하면 상위 폴더 구조를 제어 할 수 있습니다. 또한 target-dir을 사용하여 (아직 psr-4로 시도하지 않은) 작곡가에게 내 자식 구성 요소를 찾을 위치를 알릴 수 있습니다.

또 다른 이점은 하위 구성 요소의 재사용 가능성과 격리입니다. 나 혼자 문이나 엔진을 사용할 수 있습니다. 아마도 언젠가 다른 엔진이나 무언가가 필요한 트럭을 만들 것입니다.