2014-01-10 24 views
3

我想創建一個類似於Symfony或Sylius的包結構。這些文件夾在子文件夾中具有一組父子包和一組子包。 EG Symfony/framework-standard-edition將其捆綁包放入Symfony/Component中,並將Sylius放入Sylius/Src中 這些私有捆綁包存儲在私人git倉庫中。所以我不能使用packagist。作曲家PHP在父包src文件夾內安裝一個包

的計劃是有一個文件夾結構,如:

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

所以捆綁A - C裝在包A. A套餐需要綁定了 - C.所以我只需要規定了myNameSpace/PackageA和三個軟件包將被安裝到PackageA中。

我已經嘗試設置目標目錄但裏面

/vendor/MyNamespace/BundleA/PackageA/BundleA 

它把BundleA因爲這是一個私人一套回購的,我應該使用SATIS處理?

回答

1

對於私人回購使用滿意或只是您的私人(git)回購所使用的地方repositorieshttp://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中。它們將被保存在供應商/ CarBundle/src/WheelBundle和vendor/carBundle/src/doorbundle中。汽車包將像這些組件的容器一樣(就像symfony框架包一樣)。 – 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) 

門不需要發動機和發動機不需要門。但是Car需要兩者。

通過使用git子樹,我可以控制父文件夾結構。同樣使用target-dir(還沒有用psr-4試過),我可以告訴作曲家在哪裏尋找我的孩子成分。

另一個好處是可重用性和子組件的隔離。我可以自己使用門或引擎。也許有一天我會製造一輛需要另一臺發動機或其他東西的卡車。