gpt4 book ai didi

php - Doxygen:如何在php中描述类成员变量?

转载 作者:IT王子 更新时间:2023-10-28 23:54:03 24 4
gpt4 key购买 nike

我正在尝试使用 doxygen 将 php 代码解析为 xml 输出。Doxygen 不解析类成员变量的描述。

这是我的示例 php 文件:

<?php
class A
{
/**
* Id on page.
*
* @var integer
*/
var $id = 1;
}
?>

注意comment有一个简短的描述和变量类型。这是我从这个来源得到的 xml:

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.7.2">
<compounddef id="class_a" kind="class" prot="public">
<compoundname>A</compoundname>
<sectiondef kind="public-attrib">
<memberdef kind="variable" id="class_a_1ae97941710d863131c700f069b109991e" prot="public" static="no" mutable="no">
<type></type>
<definition>$id</definition>
<argsstring></argsstring>
<name>$id</name>
<initializer> 1</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" line="11" bodyfile="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" bodystart="11" bodyend="-1"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" line="5" bodyfile="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" bodystart="4" bodyend="12"/>
<listofallmembers>
<member refid="class_a_1ae97941710d863131c700f069b109991e" prot="public" virt="non-virtual"><scope>A</scope><name>$id</name></member>
</listofallmembers>
</compounddef>
</doxygen>

描述或类型均未被解析。我该如何解决这个问题?

最佳答案

我正在使用输入过滤器从 @var 注释中插入类型提示,并内联变量声明,并删除 @var 注释,因为它在 Doxygen 中具有不同的含义。有关详细信息,请参阅错误 #626105 .

由于 Doxygen 使用类 C 的解析器,当输入过滤器运行时它可以识别类型。

<?php
$source = file_get_contents($argv[1]);

$regexp = '#\@var\s+([^\s]+)([^/]+)/\s+(var|public|protected|private)\s+(\$[^\s;=]+)#';
$replac = '${2} */ ${3} ${1} ${4}';
$source = preg_replace($regexp, $replac, $source);

echo $source;

这是一个 quick hack ,并且可能有错误,它只适用于我的代码:

Doxygen @var PHP

您可以使用 INPUT_FILTER 启用输入过滤器Doxyfile 中的选项。将上面的代码保存到名为 php_var_filter.php 的文件中,并将过滤器值设置为“php php_var_filter.php”。

关于php - Doxygen:如何在php中描述类成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com