2017-03-05 207 views
0

在我們的應用程序中使用PHP來檢查一個包(任何版本)是否安裝/存在,最簡潔的方法是什麼?作曲家/ PHP:如何檢查作曲家包是否安裝?

基本上,我們的應用程序中,我們要調用一個函數具有以下簽名:

bool function hasComposerPackage(string $packageName)

將這個功能有什麼遏制,使我們可以這樣做:

if (hasComposerPackage('phpunit/phpunit')) { 
    echo 'PHPUnit is installed!'; 
} 

理想情況下,這需要在沒有任何命令行exec調用的情況下發生,並且它不應該自動加載過程中的任何不必要的文件。

+0

http://stackoverflow.com/a/15186162/897075 ?? 抱歉命令行位在第二次讀取之前沒有註冊 - 請問爲什麼? –

+0

@ Alex.Barylski由於與此問題無關的各種原因,這需要在應用程序內部發生,而不依賴命令行。 – mae

+0

對不起,我的壞 - 這裏很晚 - 快速閱讀並且回覆同樣快 –

回答

0

@使用shell_exec()composer show運行的東西user1132363是肯定知道的唯一途徑,但你似乎拒絕想走這條路線。我不知道你爲什麼拒絕,這是解決你的問題。沒有其他可靠的手段。使用class_exists也是不可靠的,因爲類名可以在包中更改。

這就是說,我認爲在這裏有一個更大的問題,你不問:你什麼問題實際上試圖解決?如在,爲什麼你需要檢查,看是否安裝了一個包?