我正在開發一個名爲php-app-config的PHP組件,使用composer。 此組件一旦被另一個項目需要,並且使用composer install
進行安裝,就應該在root package的config文件夾中尋找配置文件,如root_package/config/config.yml
。如何使用作曲家獲得根包路徑
的./config/config.yml
應當只存在於根包,而不是由「要求:」導入的部件內部中composer.json
,如下:
▾ root-package/
▸ bin/
▸ build/
▾ config/
▸ locales/
config.yml
▸ src/
▸ tests/
▾ vendor/
▸ composer/
▸ phpdocumentor/
▸ phpspec/
▸ phpunit/
▾ robotdance/
▾ php-app-config/
▾ src/
Config.php -> how to get the root "config/config.yml" path from here?
▸ tests/
composer.json
composer.lock
phpunit.xml
README.md
根包可以是web應用或命令行實用程序。 有什麼方法可以使用composer獲取根包路徑?如果不是,那麼更好的方法是什麼?
我試過[GETCWD()](http://php.net/manual/en/function.getcwd.php),似乎使用作曲家提供的自動加載器按預期工作。 – Menegazzo
如何獲取作曲家對象?是否像'使用作曲家\作曲家; $ composer = Composer :: getComposer();'? – Menegazzo
處理'vendor-dir'的代碼片段只考慮直接位於根包內的目錄。 'vendor-dir'的'dist/php'就會中斷。從「InstallationManager」獲取安裝路徑是理想的,但此時對根包沒有特殊處理,並且在請求根包的安裝位置時會在'vendor-dir'內返回一個安裝路徑。我發現的最好的方法是做'dirname(\ Composer \ Factory :: getComposerFile());'在包的目錄之外執行時也可以工作。 –