当我写这个问题时,我想到了一个解决方案。
您可以通过创建扩展命名空间类的类来伪造它。
example:
class arr extends BridgeLibName\Stdlib\Arrays{
}
要记住一件重要的事情:
如果要扩展类,则必须加载命名空间类。
如果使用过多,这可能会对性能产生影响,因为别名和命名空间仅根据需要加载。
由于我仅使用它来桥接其他类,因此桥接文件中的逻辑很少。
这些桥接文件依次正确使用别名和命名空间,从而根据需要加载实际文件。
如果你不小心实现,你可能会加载很多不必要的东西,并导致你的应用程序变得缓慢和臃肿。
我注意到的一件好事是,像 netbeans 这样的优秀 IDE 似乎也能够使用此方法进行自动完成。
如果有更好的方法来做到这一点,请告诉我。
只是想到对此方法进行修改以解决不必要的类实例化问题。
核心库可以与普通的 psr-0 加载程序一起使用。
为了让别名自动加载,我在命名空间类旁边创建了一个名为 include 的附加目录。
在作曲家中你这样描述它:
"autoload": {
"psr-0": {
"BridgeLibName\\": "."
},
"classmap": ["include/"]
}
现在,您的库将按预期从正确的命名空间加载,并且您的别名类将根据需要自动加载。
放入 include 目录中的类现在可以扩展命名空间类(如上所示),并且在使用之前将不再加载。
现在您拥有全局别名,而不必通过加载未使用的类来牺牲性能。