我有一些用Doxygen记录的PHP代码。在这段代码中,有许多钩子,它们是我的代码调用的函数,但函数本身是由这段代码的用户定义的。
我想记录钩子,但因为我的代码中没有这些函数(用户定义函数,我的代码只是调用它们),所以我无处可以附加Doxygen注释 - 除非我定义了假功能。
有什么方法可以避免定义这个假函数吗?如果我使用C,我可以定义函数,但使用#ifdefs将其隐藏在编译器中(但仍然有Doxygen看到它),但我不确定PHP中的等价物是什么。理想情况下,我想要的东西不会导致PHP解析器的任何额外工作。
有什么建议吗?这就是我想要记录的内容,以及我现在如何使用假函数:
/// This is an example hook. /** * Register it with $hooks['example'][] = 'your_function_name_here'; * * @param string $dummy * Dummy parameter. */ function hook_example($dummy) { }; // fake function for Doxygen
答案 0 :(得分:2)
如果您希望其他程序员实现您的钩子,请使用OOP接口和抽象类。这将清理您的代码。
作为副作用,Doxygen非常乐意记录抽象方法。
答案 1 :(得分:2)
由于PHP不支持#ifdef块,我认为可以做到的唯一方法是获取注释和伪函数声明并将它们放在另一个.php文件中。配置Doxygen以包含此新文件,但不要在其余代码中的任何位置包含()。
然后虚假函数将出现在文档中,但PHP解析器永远不会知道它们。