Список функций класса PHP в комментариях - PullRequest
1 голос
/ 24 декабря 2010

Всякий раз, когда я пишу класс на PHP, мне нравится помещать список открытых функций в верхнюю часть класса следующим образом:

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

Мне было интересно, есть ли какие-нибудь инструменты, которые могут автоматизировать этопроцесс.Как, возможно, я мог бы загрузить файл класса, и он мог бы генерировать список имен функций, переменных и тому подобное?

Спасибо!

Ответы [ 4 ]

5 голосов
/ 24 декабря 2010

Попробуйте 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) {
    ...
}
0 голосов
/ 24 декабря 2010

Это можно сделать довольно легко с помощью 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)
0 голосов
/ 24 декабря 2010

Для этого есть различные инструменты. Они называются PHP документаторами. Я использую IDE с именем PHPStorm, в который встроен документатор.

Вот еще немного информации о PHPDoc .

0 голосов
/ 24 декабря 2010

В этом подходе нет особой ценности.

Во-первых, если вы этого еще не сделали, вы должны пометить каждый из ваших методов (и действительно переменных-членов) соответствующим .видимость (общедоступная / охраняемая / частная).Затем вы могли бы использовать решение, такое как phpDoc , которое должно надлежащим образом документировать каждый аргумент метода в дополнение к предоставлению общего назначения для каждого метода / класса и т. Д.

Затем вы можете автоматически генерировать документациюдля вашего проекта в формате HTML (среди прочих).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...