假设我有一个软件包sprout_services
我正在使用的其他 3 个软件包require
.一旦要运行的第一个包需要它,它就会在全局空间中打开。
从我的应用程序的任何地方,我都可以做new SproutServicesServiceLocator
.现在,一旦我让我的第二个包初始化了这个sprout_services
,我将不可避免地遇到Class has already been declared
的问题,因为我正在尝试重新定义之前自动加载的相同类。
如何使这个sprout_services
包在全局状态下打开,而不会覆盖它并进入"嘿,我是这里的第一个!
我一无所获。
一旦依赖项被解析并因此被作曲家包含,它将进入全局命名空间并且无法覆盖。作曲家知道并看到这一点,它不会尝试重新加载。
我不确定如果我的类名在不同版本中相同会发生什么,我会在找到更多时更新此答案。