如何检查是谁在PHP中调用了该函数?

如何检查是谁在PHP中调用了该函数?,php,debug-backtrace,Php,Debug Backtrace,除了debug\u backtrace之外,还有其他方法可以检查是谁调用了函数?我正在研究模块化系统,我喜欢控制哪个模块可以访问“核心”功能集中的特定功能/变量调试(u backtrace)非常适合我,但我不确定我是否想在生产中使用它。改用面向对象(OO)的方法 使用debug\u backtrace因为这是错误的,它用于调试 您应该使用OO来限制功能 例如,如果您有一些模块客户、产品和用户,那么您可以让这些模块中的每一个扩展不同的类 class Customer extends Admin_M

除了
debug\u backtrace
之外,还有其他方法可以检查是谁调用了函数?我正在研究模块化系统,我喜欢控制哪个模块可以访问“核心”功能集中的特定功能/变量<代码>调试(u backtrace)非常适合我,但我不确定我是否想在生产中使用它。

改用面向对象(OO)的方法

使用
debug\u backtrace
因为这是错误的,它用于调试

您应该使用OO来限制功能

例如,如果您有一些模块
客户
产品
用户
,那么您可以让这些模块中的每一个扩展不同的类

class Customer extends Admin_Module

class Product extends Public_Module

class User extends Registered_User_Module

您还可以使用
public
private
protected
语句来停止子类或其他完全不同的类的访问。

debug\u backtrace
是为调试而创建的。您应该使用
private
protected
public
,它们是为告诉其他对象和类如何相互访问而设计的。@barell我知道如何使用
private
protected
public
但我如何检查调用函数的模块,以便决定允许还是拒绝它?这对我毫无帮助-(我正在使用OO,但我不知道如何拒绝访问,例如
modules/customer/*.php
访问
$core->getPassword()
。使用
debug\u backtrace
我只需检查
debug\u backtrace(debug\u backtrace\u IGNORE\u ARGS,1)[0]['file']
工作完成了!我正在寻找“正确”的方法来实现同样的功能。这对你的方法没有帮助,因为你的方法是错误的。退后一步,采取正确的方法,OO会有所帮助。扩展类不会让主类控制谁可以访问它,这样任何模块都可以扩展核心模块并查看或不查看-依赖于ds的核心功能定义。例如,我希望/modules/system/中的任何模块都可以访问任何地方和/modules/custom/仅访问核心中的几个功能……也许可以编辑您的原始问题并解释您的模块实现。目前我不知道模块是否是登录CMS的用户交互的模块如果模块是从GitHub中提取的代码,任何人都可以看到/使用-(我只需要知道调用函数的人-最好是知道实际的文件名如何使用
debug\u backtrace
查看,如果不可能,可以-我可以考虑其他事情,不再浪费时间使用此选项-只需要知道它是否有任何其他选项如何操作