我有一个由类定义的用于与我的网络应用程序交互的 API。每个可公开访问的方法都需要在运行前完成身份验证。我不想在每个方法中一遍又一遍地使用同一行,我想使用神奇的 __call 函数。但是,它只适用于私有或受保护的方法,而我的方法需要公开才能与 Zend_Json_Server 一起使用。
class MY_Api
{
public function __call($name, $arguments)
{
//code here that checks arguments for valid auth token and returns an error if false
}
public function myFunction($param1, $param2, $param3)
{
//do stuff when the user calls the myFunction and passes the parameters
//this function must remain public so that Zend_Json_Server can parse it
//but I want it intercepted by a magic method so that the authentication
//can be checked and the system bails before it even gets to this function.
}
}
是否可以挂钩这些公共函数并可能在调用它们之前取消它们的执行?