有你可以做到這一點的幾種方法。
1. 我會說最正確的方法,就是託管它並使用Satis來生產私人「包裝師」。然後,作曲家將表現「正常」並獲得最新版本,進行版本檢查等,但你說你不關心這一點。
如果你想了解更多的細節,我可以擴展這個,我已經建立了很多令人滿意的包,它工作得很好。 (請注意,這裏還有我尚未試用過的新商用Toran代理服務器。)
2. 如果您的'imaqtpie'圖書館是一個虛假的供應商圖書館(聽起來您只是有一些文件存儲在那裏,就像你會老式的包含庫一樣),那麼你可以簡單地使用一個classmap來將自動加載器指向你的頂級應用程序中的那個文件夾。這隻有在您的頂級應用程序中包含該文件夾時纔有意義。
所以,你的應用程序的作曲家JSON可能看起來像:
{
"require": {
"filp/whoops": "1.*"
},
"autoload": {
"classmap":[
"vendor/imaqtpie/framework/src"
]
}
}
所以這告訴作曲家有該文件夾在一堆類。當您運行composer dump-autoload
時,它將掃描該文件夾並生成vendor/composer/autoload_classmap.php
並列出所有文件。
這不是你應該如何使用作曲家,但你並沒有要求使用作曲家的包管理,你問如何使用作曲家的自動加載器,我想這很好!只要你瞭解風險。
3. 如果你的包或者是PSR0或4(這聽起來可能從「源」文件夾),那麼你同樣做到這一點在你的頂級應用:
{
"require": {
"filp/whoops": "1.*"
},
"autoload": {
"psr-4":{
"Imaqtpie\\Framework\\":"vendor/imaqtpie/framework/src"
]
}
}
這又是有點奇怪,但應該工作!
通常情況下,你會在你的封裝的 composer.json指定此路徑,然後當你做一個更新它被合併到composer.lock
然後vendor/composer/installed.json
(這是用於轉儲自動載入源)。但理論上你可以從頂級應用程序加載任何你想要的東西,因此你可以將一個包「硬編碼」到供應商庫和類路徑中去。
我可能會推薦不是這樣做雖然!供應商文件夾是一個脆弱的位置,大多數人和程序會假設可以隨時銷燬和重建。所以這是一個危險的地方存儲任何不在包裝中的東西。對於其他任何假設相同的開發者來說,這也是令人困惑的。
因此,我建議您將庫移動到遠離供應商文件夾的其他位置,例如'lib',然後使用上面的classpath方法將其包含在自動加載器中。
這是正確的答案。您不應該版本控制您的'vendor'文件夾,因此最好爲要添加到供應商文件夾的代碼進行回購,並通過作曲者將其添加。 –