もちろん、同じ名前空間とクラス名を持つ同じサードパーティ ライブラリ (またはクラス) の異なるバージョンがある場合。名前の衝突を避けて同じプロジェクトに含める方法はありますか?
この問題の別のケースは、コンポーネントが個別に開発されるモジュラー プロジェクトがある場合に発生します。したがって、独自のフォルダーに同じ外部ライブラリ ファイルを含むさまざまなモジュールを含めることができますが、もちろん、モジュールが読み込まれると、クラスの衝突が発生します。
ユーザーはこのコードを使用することを提案します:
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();
しかし、もちろんうまくいきません。いずれにせよ、クラスは var ではなくグローバルに宣言されているため、衝突します。
だから..含めるライブラリのすべての名前空間を手動で編集しない別のソリューションはありますか?
前もって感謝します