Doxygen комментарии для Laravel

У меня есть сторонний пакет с функцией разрешения области видимости / типа фасада, как показано ниже

 \Cron::add('job-expired', '* * * * *',

/**
* @fn job-expired()
* @brief Cron for job expired.
*
* Cron for job expired.
* @returns Response
*/
function()
{
$jobs = Job::whereRaw("expiry_date < '".date('Y-m-d',strtotime("-1 days"))."'")->get();
$queries = DB::getQueryLog();
$last_query = end($queries);
//print_r($jobs);
foreach($jobs as $job)
{
$job->status = 2;
$job->save();
//$job->expiry_date.' ' .$job->id.'<br>';
}
});

Следующие комментарии не работают для этого типа функции.

/** @brief find certain url in array values
*
*  find certain url in array values
*
*  @param array values
*  @param url specific url to search
*  @return Response
*/

Я знаю комментарии к меткам классов или функций, и они работают нормально, кроме описанных выше комментариев к функциям типа

Кто-нибудь может мне помочь, как прокомментировать для этого типа функции?

0

Решение

Я не пробовал это:

Я думаю, что Doxygen не обнуляет ваш код, потому что не может найти ожидаемое ключевое слово после блока doc.

Так что, может быть, это работает, если вы напишите это так:

\Cron::add('job-expired', '* * * * *',
/**
* Documentation here
*/
function()
{
...
});

Если это также не работает, возможно, вам придется использовать фильтр, чтобы код немного отличался от doxygen, поэтому function() должен стать function name(),

Вы можете получить несколько примеров фильтров на моем GitHub репозиторий.

Обновить:
Я использую это регулярное выражение, которое вы можете использовать в качестве фильтра

$regexp = '#(\/\*\*[\s\S]*?\*\/\s*)?(\\\\?Cron\s*::\s*add\()(\'|")([^,\']+)(\'|")(\s*,\s*[^,]+\s*,\s*)(\/\*\*[\s\S]*?\*\/\s*)?function\s*\(\s*\)#';
$replace = '$1$7public function $4()';
$source = preg_replace($regexp, $replace, $source);

Это делает две вещи:

  1. Он перемещает ваш комментарий к документу в нужном месте
  2. Это дает анонимной функции имя и модификатор доступа

Так что оба

/**
* Docs
*/
\Cron::add('job-expired', '* * * * *', function()
{
...
});

а также

\Cron::add('job-expired', '* * * * *',
/**
* Docs
*/
function()
{
...
});

становиться

/**
* Docs
*/
public function job-expired()
{
...
});

Вы можете попробовать, и я добавлю это в репозиторий git.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector