如果我有相同的第三方庫(或類)的不同版本,它們當然具有相同的名稱空間和類名稱。有沒有辦法將它們包含在同一個項目中,避免名稱衝突?PHP包含相同庫的不同版本
當我們有一個單獨開發組件的模塊化項目時,會發生此問題的另一種情況。所以我們可以有不同的模塊,它們在自己的文件夾中包含相同的外部庫文件,但是當模塊被加載時,我們會遇到類衝突。
本文Loading multiple versions of the same class
的用戶建議使用此代碼:
namespace old {
include /lib/api-1.0/library.php;
}
namespace foo {
include /lib/api-2.0/library.php;
}
$oldlibary = new old\Library();
$newlibrary = new foo\Library();
,但當然這是行不通的。無論如何,因爲它們被宣佈爲gobally而不是vars,所以類會發生碰撞。
因此,有沒有另一種解決方案不是手工編輯庫中包含的所有名稱空間?
在此先感謝
'new'是一個關鍵字,它不會像命名空間一樣工作。 –
這很棘手,因爲函數和類在包含在全局範圍內時被定義。變量不是。 – Rainulf