所有PHP别名列表

Ala*_*orm 6 php alias

在PHP中,您可以使用该class_alias函数定义类别名.有没有办法获取当前在运行时定义的所有类别名的列表?

Nie*_*jes 4

正如 hek2mgl 所示,这在 PHP 中是不可能的。不过,根据您想要这样做的原因,可能有可行的解决方法。

我假设您现在正在尝试检测在第 3 方代码中创建的别名。然后,您可以安装 Runkit 模块,设置runkit.internal_override1启用本机功能修改,并在项目的根文件中执行类似以下操作:

runkit_function_rename('class_alias', 'class_alias_internal');
function class_alias($original, $alias, $autoload = TRUE)
{
    Logsomewhere("Creating alias from $original to $alias!");
    class_alias_internal($original, $alias, $autoload);
}
Run Code Online (Sandbox Code Playgroud)

当然,这也意味着您可以准确地构建您正在寻找的列表。我没有看到此功能有任何运行时生产用途(如果我错了,请纠正我),因此您只需在开发服务器上根据需要执行此操作即可。由于 Runkit 是一个相当危险的模块,我什至会在使用完它后立即在开发服务器上禁用它。

对于其他情况,类似的解决方法可能是可行的,但我需要知道您为什么寻求此信息。就 PHP 而言,别名应该无法检测到的,因此它可以很好地完成其工作(进行更改)。