Извлечение объявлений функций из файла PHP - PullRequest
1 голос
/ 20 апреля 2010

Я хочу создать ссылку на API для своего фреймворка и приложения.

По сути, скажем, у меня есть файл класса model.class.php:

class Model extends Object {

    ... code here ...

    // Separates results into pages.
    // Returns Paginator object.

    final public function paginate($perpage = 10) {

        ... more code here ...

    }

}

и яхочу иметь возможность генерировать ссылку, на которую мои разработчики могут быстро ссылаться, чтобы узнать, какие функции доступны для вызова.Им нужно только видеть комментарии непосредственно над каждой функцией и строкой объявления.Примерно так (похоже на заголовочный файл C ++):

// Separates results into pages.
// Returns Paginator object.

final public function paginate($perpage = 10);

Я провел некоторое исследование и этот ответ выглядел довольно неплохо (используя классы Reflection), однако яне уверен, как я могу оставить комментарии.

Есть идеи?

Я хочу сохранить форматирование текущего комментария.Я и люди, работающие над кодом, ненавидят многословие, связанное с PHPDocumentor.Не говоря уже о том, что переписывание комментариев всего проекта заняло бы годы, поэтому я хочу сохранить только // комментарии в открытом тексте.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2010

Почему бы вам просто не запустить PHPDocumenter для кода?

PHPDoc идентичен JavaDoc и сохранит все параметры и комментарии в блоке документации над функцией.

РЕДАКТИРОВАТЬ: Поскольку вы не хотите PHPDoc, я думаю, что было бы проще всего написать парсер RegEx для этого, так как Reflection не предоставит вам никаких окружающих комментариев.

PHP-код для получения комментария:

if(preg_match("@//(.+)$@",$line,$match)>0)
{
echo "Comment is: ".$match[1];
}
1 голос
/ 20 апреля 2010

это то, для чего phpdoc . Вы комментируете свой код определенным образом, следуя определенным правилам, и когда вы закончите, вы запускаете свой код через анализатор. Он выводит именно то, что вы ищете.

...