Php 类_别名()是否可以撤消?
假设在单元测试中,我想使用Php 类_别名()是否可以撤消?,php,Php,假设在单元测试中,我想使用class\u alias()来替换一个通常使用的假类: class_alias('MyFakeTestingClass', 'Some\Real\Class\Somewhere'); 是否有任何方法可以撤消此操作,以便Some\Real\Class\where可以在之后恢复正常使用?这不起作用: class_alias('Some\Real\Class\Somewhere', 'Some\Real\Class\Somewhere'); 你不是走错方向了吗?我以前使
class\u alias()
来替换一个通常使用的假类:
class_alias('MyFakeTestingClass', 'Some\Real\Class\Somewhere');
是否有任何方法可以撤消此操作,以便Some\Real\Class\where
可以在之后恢复正常使用?这不起作用:
class_alias('Some\Real\Class\Somewhere', 'Some\Real\Class\Somewhere');
你不是走错方向了吗?我以前使用过
class\u alias
,现在仍然记得我有权访问原始类/名称空间
class Foo
{
// Foo
}
// Foo is the original class, placed first.
class_alias('Foo', 'Bar');
var_dump(new Bar, new Foo);
没有。 你能克隆原始类吗?不能克隆,即使使用runkit也不行…为什么要撤销它?即使创建了
Class\u别名
,您也无法访问new Some\Real\Class\where
。@Dagon:克隆是什么意思?@PHPglue:不。现在,这样做可以得到一个MyFakeTestingClass
的实例。这有点让人困惑,但不,我认为用测试类覆盖代码库中其他地方的类是正确的。在您的示例中,您不能做的是获取一个已被别名屏蔽的预先存在的Bar
类。