我在幾個項目中使用了不同版本的類似庫。這些庫命名空間是這樣的:PHP命名空間別名衝突?
項目A:
namespace Ewout\Project_A\Compatibility;
Class Core {}
項目B:
namespace Ewout\Project_B\Compatibility;
Class Core {}
...等
爲了避免使用完整的命名空間中無處不在,我他們的別名在項目的PHP文件中:
項目A(a/main.php):
use Ewout\Project_A\Compatibility\Core as CoreX;
項目爲B(b/main.php):
use Ewout\Project_B\Compatibility\Core as CoreX;
這是好嗎?項目腳本可以同時加載,儘管我不需要在同一個文件中將Project_A\Compatibility\Core
和Project_B\Compatibility\Core
類別別名化。全局命名空間中沒有CoreX
類(從我的測試看來,它看起來不會導致任何問題,但?)。
我測試過,並沒有看到PHP抱怨衝突的任何錯誤,但要確保這不會導致問題的發展。
這不會造成任何衝突。但在詢問之前測試你的代碼。 – Ad5001
我測試過這個:「我還沒有看到任何PHP抱怨衝突的錯誤,但是要確保這不會導致問題的發生。」 – Ewout
哦,抱歉沒有看到它。但是很長一段時間你並沒有將/ main.php和/b/main.php結合起來,那就沒有任何問題。 – Ad5001