为非命名空间类创建命名空间类别名

时间:2019-05-20 15:08:00

标签: php class alias extend

我是PHP 5.6+的新手,想赶上它,我想为应用程序创建一个兼容层,请考虑以下情形

// classA.php, a non spaced class
class A {
  // ONLY fallback const + methods / work as just an alias for B (below)
}

// classAchild.php, a child non spaced class
class Achild extends A {
  // ONLY fallback const + methods / work as just an alias for Bclass (below)
}

// B.php, a spaced class
namespace Abstract\Context;
class B {
  // ALL const + methods
}

// Bchild.php, a child non spaced class
namespace Abstract\Context\B\Subcontext;
class Bchild extends B {
  // ALL const + methods
}

A是类B的PHP 4+版本,即PHP 7+,在功能上,这些类及其子类是等效的,但是在不同的上下文中。

让我解释一下:

  • 我现在处于这种情况下,我必须基于现有的BchildAchild创建一个命名空间别名。
  • 在所有类名称空间(最新应用程序版本)的环境中工作时,始终使用B,但是在较旧的应用程序中工作时,Bchild总是在那里填充{{ 1}}或有时对其进行修补。

类似这样的东西:

Achild

如果您知道该怎么做,请告诉我。

0 个答案:

没有答案