每当我用PHP编写一个类时,我喜欢在类的顶部放置一个公共函数列表,如下所示:
// add_project($apikey, $post, $email)
// create_user($apikey, $email, $firstname, $lastname, $rolename, $pid)
// user_join_project($apikey, $email, $pid)
我想知道是否有任何工具可以自动执行此过程。也许我可以加载类文件,它可以生成函数名称,变量等列表?
谢谢!
答案 0 :(得分:5)
试试phpDocumentor。您使用DocBlock语法进行注释(类似于Javadoc和其他语言),然后通过phpDocumentor解析器传递您的PHP源文件,并为您生成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) {
...
}
答案 1 :(得分:0)
这种方法没有太大的价值。
首先,如果您还没有这样做,则应使用appropriate visibility(public / protected / private)标记每个方法(实际上是成员变量)。然后,您可以使用phpDoc之类的解决方案,除了为每个方法/类提供总体目的之外,还可以正确记录每个方法参数等。
然后,您可以以HTML格式(以及其他)自动生成项目文档。
答案 2 :(得分:0)
有各种各样的工具。它们被称为PHP documentor。我使用名为PHPStorm的IDE,它集成了一个documentor。
答案 3 :(得分:0)
使用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)