可以json在 PHP 中禁用擴(kuò)展嗎?醫(yī)生說:從 PHP 5.2.0 開始,JSON 擴(kuò)展被默認(rèn)捆綁并編譯到 PHP 中。但是評論里有人說json擴(kuò)展有時是作為一個單獨(dú)的包提供的。該json擴(kuò)展是否可以明確禁用,或者我們是否可以確信它始終可用?背景:我想在我的庫中創(chuàng)建一個類 implement JsonSerializable,但如果接口并不總是被聲明,那么這可能是一個 BC 中斷,并且?guī)焱蝗灰蕾囉谝粋€并不總是可用的擴(kuò)展。
1 回答

慕尼黑的夜晚無繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個贊
PHP 8:
不,不能再禁用JSON 擴(kuò)展。
PHP 7:
是的,可以隨意安裝、卸載、啟用或禁用任何 PHP 擴(kuò)展。
擴(kuò)展 - 盡管它無處不在json
- 仍然只是一個擴(kuò)展,也可以通過這種方式刪除。
在以下幾種情況下,json
擴(kuò)展名可能不存在:
管理員禁用/卸載它:
;extension=json
安裝的 PHP 版本是從源代碼手動編譯的,
json
擴(kuò)展名被遺漏了:--disable-json
該擴(kuò)展被捆綁為一個單獨(dú)的包;例如,在 Fedora 上,您必須
php-json
顯式安裝該軟件包。
您問題的重要部分:我們能否確信它始終可用
通常,我會說不。盡管這種特定擴(kuò)展被禁用或遺漏的情況不太可能發(fā)生,但這并不意味著它不會發(fā)生。
如果您的目標(biāo)受眾僅限于可能不會接觸這些設(shè)置的人,那么您可能是安全的,但不能保證。
我的建議:將您的庫構(gòu)建為Composer包,并聲明ext-json
為依賴項(xiàng)。這樣,您可以將安裝說明作為 Composer 包提供,如果底層系統(tǒng)不滿足您的包要求,安裝將失敗,并且將提醒用戶缺少擴(kuò)展。
- 1 回答
- 0 關(guān)注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消