我有两个命名空间类,它们加载了具有相同命名空间和类的作曲家。(PSR4)
//directory1/Foo/Bar.php
namespace Foo;
class Bar{
....
}
我有第二个目录具有相同的名称空间用于覆盖。
//directory2/Foo/Bar.php
namespace Foo;
class Bar{
....
}
现在,如果我将 directory1 和 directory2 都注册为自动加载程序,则 directory2 将优先于 directory1。使用这种方法,我可以通过备用目录完全覆盖类。
调用 new Foo\Bar 时;
我会得到一个 directory2/Foo/Bar.php 的实例
如果文件没有在第二个目录中退出,我将得到一个实例:
我会得到一个 directory1/Foo/Bar.php 的实例
这很棒,但我有一个问题。
虽然我可以完全覆盖,但似乎不可能扩展以这种方式设置的类。
在 directory2/Foo 中找到的 Bar 是否可以扩展在 directory1/Foo 中找到的 Bar,因为它们共享名称空间和类名?