的PHP ncurses library是不是一個正常的PHP安裝安裝,您必須安裝它作爲一個PECL extension捆綁PECL擴展中藥業
我想將其捆綁在一個PHP應用程序藥業。
這是可能的和如何做到這一點?
的PHP ncurses library是不是一個正常的PHP安裝安裝,您必須安裝它作爲一個PECL extension捆綁PECL擴展中藥業
我想將其捆綁在一個PHP應用程序藥業。
這是可能的和如何做到這一點?
我同意cweiske的回答。
我明白你爲什麼會對這樣做感興趣,但現實情況是,.phar的PHP的先決條件意味着它們永遠不會是獨立的可執行文件。他們就像java .jar文件。在每種情況下,都需要相關的運行時環境。
提出的PHP解決方案很簡單:
if (!extension_loaded('ncurses')) {
echo "The ncurses Extension is required. Use PECL or your system package manager to install it. See http://php.net/ncurses for more information."
exit;
}
雖這麼說,如果我的假設是正確的,任何程序您要創建一個使用ncurses的,可能是更好的寫在一個自包含的語言,可以是編譯成可執行文件(c,C++)。
或者至少是一種可以以強大而簡單的方式處理應用程序打包的語言(python,Ruby,Golang)。尤其是對Golang對Docker等跨平臺工具以及終端庫如termui的興趣如此之大,我認爲您應該考慮PHP是否真的是您正在創建的那種應用程序的正確工具。
PECL包是用C編寫的,需要針對特定的PHP版本和操作系統(以及其他變量,如ZTS和CPU架構)進行編譯。
您需要將上述變量的每種可能組合都編譯的庫打包到您的.phar
文件中,並自行加載正確的文件。
雖然這當然是可行的,但我不會投入巨大的努力。而是檢查擴展是否已加載,並生成一個很好的錯誤消息,告訴如果不是,請執行該操作。