4

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

理想情况下,我想通过在 C 代码中嵌入 PHPdocs 来做到这一点,以将实现和文档保持在一起。

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

编辑:

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

{{{ proto 行不仅用于在编辑器中折叠,而且还被 PHP 文档项目中的 genfunclist 和 genfuncsummary 脚本解析。如果您永远不会分发您的扩展并且没有将其与 PHP 捆绑在一起的野心,您可以删除这些评论。

4

4 回答 4

5

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

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

这似乎有点 hacky,因为最好将文档保存在与实现相同的文件中,但它实际上似乎是正确的方法,因为这就是记录内置函数和扩展的方式 - 请参阅~/netbeans-6.7/php1/phpstubs/phpruntime/*.php

例如:

在 C 文件中:

PHP_FUNCTION(myFunctionStringFunction)
{
// extension implementation
}

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

/**
 * My docs here
 * @param string $myString
 */
function myFunctionStringFunction($myString)
{
  die("Empty stub function for documenation purposes only.  This file shouldn't be included in an app.");
}
于 2009-07-08T10:35:49.790 回答
4

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

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

您可以在文档PHPDoc上找到所有可用的标签

于 2009-07-08T09:24:34.583 回答
0

我认为可以使用 Reflection API 来生成原型文件,尽管我找不到可以做到这一点的现有代码。

于 2010-08-28T00:53:54.380 回答
0

如扩展骨架中所写:

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

上一行适用于 vim 和 emacs,因此它可以正确折叠和展开源代码中的函数。请参阅函数定义之前的相应标记,其中还记录了函数的用途。请遵循此约定以方便其他人编辑您的代码。

于 2011-12-19T23:48:15.210 回答