在PHP中挂钩函数调用

时间:2011-06-16 09:18:15

标签: php reflection hook introspection

一点背景:在运行时,我希望能够检查当前调用的函数javadoc样式文档,以确定其正式(类型化)声明。这将允许在调试和测试期间通过反射(代价)检查运行时类型(对于简单和复杂类型),我会发现非常有帮助。

因此,在php中我希望在任何其他函数即将被调用时调用用户定义的函数。也就是说,如果函数foo()被调用,我想在之前调用我的callHookHandler()函数。

一种解决方案是在所有用户定义的类中实现__call(),但这既笨拙又不包括对类外定义的函数的支持,所以我正在寻找更好的解决方案。

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

挂钩函数调用的另一种方法是使用名称空间的技巧:Intercepting Execution of System Functions in PHP

你也可以使用Go!框架,用于定义自动拦截系统功能执行的方面。