Я использую разные версии одной и той же библиотеки в нескольких проектах. Библиотеки имеют такое пространство имен:
Проект А:
namespace Ewout\Project_A\Compatibility;
Class Core {}
Проект Б:
namespace Ewout\Project_B\Compatibility;
Class Core {}
...так далее
Чтобы везде не использовать полное пространство имен, я присваиваю им псевдонимы в PHP-файлах проекта:
Проект А (a/main.php):
use Ewout\Project_A\Compatibility\Core as CoreX;
Проект Б (b/main.php):
use Ewout\Project_B\Compatibility\Core as CoreX;
Это нормально? Сценарии проекта можно загружать одновременно, хотя мне никогда не понадобится псевдоним классов Project_A\Compatibility\Core
и Project_B\Compatibility\Core
в одном и том же файле. В глобальном пространстве имен нет класса CoreX
(хотя, судя по моим тестам, это тоже не вызовет никаких проблем?).
Я тестировал и пока не видел никаких ошибок PHP, жалующихся на конфликты, но хочу убедиться, что это не вызовет проблем в будущем.
including
их обоих в одном и том же сценарии, и он работает без каких-либо ошибок, но это именно то, что я хотел спросить/в чем я не уверен. - person Ewout   schedule 15.02.2017