如何将$事件用于"逻辑钩子"?

时间:2018-05-28 20:07:51

标签: sugarcrm suitecrm

我看到这个示例代码包含一个名为StampIt的方法,该方法有2个参数$ focus和$ event

class AddTimeStamp
{
    function StampIt(& $focus, $event)
    {
        global $current_user;
        $focus->description .= "Saved on ". date("Y-m-d g:i a"). " by ". $current_user->user_name;         }
}

我只是想了解使用$ event参数的位置,因为它没有在StampIt方法中的任何地方提及

来源:http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Application_Framework/Module_Builder/Introduction/

1 个答案:

答案 0 :(得分:2)

$event将包含运行时期间当前正在执行的事件/钩子类型的名称。 如果将单个方法挂钩到多个事件并且需要根据触发它的事件更改其逻辑,这将非常有用。

在这个特定的例子中,我们知道$event将始终包含字符串before_safe,因为这是我们的示例方法被挂钩的唯一事件。没有其他事件可以称之为该方法。

这就是为什么变量在这个例子中仍未使用的原因,因为该方法无论如何都不必处理多于单个事件类型,也不会通过阅读$event获得任何新信息。