繁体   English   中英

PHP类函数列表的注释

[英]PHP Class Function List in Comments

每当我用PHP编写类时,我都喜欢在此类的顶部放置一个公共函数列表,如下所示:

// add_project($apikey, $post, $email)
// create_user($apikey, $email, $firstname, $lastname, $rolename, $pid)     
// user_join_project($apikey, $email, $pid)

我想知道是否有任何工具可以自动化此过程。 就像我可以加载类文件一样,它可以生成函数名称,变量等的列表?

谢谢!

尝试phpDocumentor 您使用DocBlock语法进行注释(类似于Javadoc和其他语言),然后将PHP源文件通过phpDocumentor解析器传递,并为您生成API文档。

一个粗略的例子:

/**
 * Adds a project.
 * 
 * @param string $apikey The API key.
 * @param object $post The post.
 * @param string $email A supplied email address.
 * @return void
 */
function add_project($apikey, $post, $email) {
    ...
}

这种方法没有太多价值。

首先,如果您尚未这样做,则应使用适当的可见性 (公共/受保护/私有)标记每个方法(实际上是成员变量)。 然后,您可以使用诸如phpDoc之类的解决方案,该解决方案除了为每个方法/类提供总体目的之外,还可以正确记录每个方法的参数。

然后,您可以自动以HTML格式(以及其他格式)为项目生成文档。

有各种各样的工具可以做到这一点。 它们被称为PHP documentor's。 我使用一个称为PHPStorm的IDE,该IDE集成了一个文档器。

这是有关PHPDoc的更多信息

使用Parsekit可以很容易地做到这一点

使用此(“ tmp.php”)作为示例数据:

<?php
class Fruit
{
    public function apple($cored) {}
    public function orange($peeled) {}
    public function grape($colour, $seedless) {}
}

这是一个简单的Parsekit示例,用于转储类的函数:

<?php
$parsed = parsekit_compile_file($argv[1]);
foreach ($parsed['class_table'] as $class => $classdat) {
    foreach ($classdat['function_table'] as $func => $funcdat) {
        echo "{$class}::{$func}(";
        $first = true;
        foreach ($funcdat['arg_info'] as $arg => $argdat) {
            if (!$first) {
                echo ', ';
            }
            echo "\${$argdat['name']}";
            $first = false;
        }
        echo ")\n";
    }
}

…这里正在使用:

$ php parse.php tmp.php
Fruit::grape($colour, $seedless)
Fruit::orange($peeled)
Fruit::apple($cored)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM