使用PHPdoc记录PHP扩展

时间:2009-07-08 09:11:15

标签: php netbeans phpdoc php-extension

我在C中编写了一个PHP扩展,我想创建PHPdoc文档,以便我的用户在调用我的扩展时在他们的PHP IDE(在本例中为Netbeans)中获取内联文档。

理想情况下,我希望通过在PHP代码中嵌入PHPdoc来实现这一目的,以便将实现和文档保持在一起。

假设可以将PHPdocs嵌入到C中,需要采取哪些额外步骤才能使文档出现在Netbeans中(就像PHP代码的PHP代码一样)?

编辑:

O'Reilly Programming PHP是指doc生成中使用的/* {{{ proto注释格式,但我不确定引用的脚本是否生成PHPdocs:

  

不仅使用{{{proto line   在编辑器中折叠,但也是   由genfunclist和。解析   genfuncsummary脚本是其中的一部分   PHP文档项目。如果   你永远不会分发你的   延伸并没有野心   有它与PHP捆绑,你可以   删除这些评论。

4 个答案:

答案 0 :(得分:5)

一种方法是使用具有适当PHPdocs的存根函数的PHP文件,然后不要将它包含在PHP应用程序中,但是将它添加到Netbean的PHP包含路径(在File->Project Properties->PHP Include Path中)。

这种方式类型完成和内联文档可以工作,但PHP不会被函数的多个声明混淆。

这看起来有点hacky,因为将文档保存在与实现相同的文件中会很好,但实际上看起来确实是正确的方法,因为这是内置函数和扩展的记录方式 - 请参阅{{ 1}}

例如:

在C档案中:

~/netbeans-6.7/php1/phpstubs/phpruntime/*.php

然后在PHP文件中,存根声明:

PHP_FUNCTION(myFunctionStringFunction)
{
// extension implementation
}

答案 1 :(得分:4)

您只需在评论中使用正确的标签。

 /**
 * Returns the OS Languages for an Subversion ID
 *
 * @access  public
 * @param   int         $subVersionId   Subversion ID
 * @return  array       $results        Languages for Subversion ID
 */

您可以在文档中找到所有可用的标记 PHPDoc

答案 2 :(得分:0)

我认为可以使用Reflection API来生成原型文件,但我找不到能够完全实现的现有代码。

答案 3 :(得分:0)

如扩展骨架中所述:

/* {{{ */ and /* }}} */ 
  

上一行适用于vim和emacs,因此可以正确折叠   并在源代码中展开函数。只看到相应的标记   在函数定义之前,函数的目的也是   记录。为方便起见,请遵循此惯例   其他人编辑你的代码。