Laravel 的 Doxygen 评论
Doxygen comments for Laravel
我有一个第三方包,其范围为 resolution/facade 类型的 cron 函数,如下所示
\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
*/
我知道 class 或函数标签注释,除了上述类型的函数注释外,这些都工作正常。
有人可以帮我如何评论这种功能吗?
我没试过这个:
我认为 Doxygen 不会记录您的代码,因为它在文档块后找不到预期的关键字。
所以如果你这样写可能会奏效:
\Cron::add('job-expired', '* * * * *',
/**
* Documentation here
*/
function()
{
...
});
如果这也不起作用,您可能必须使用过滤器使代码看起来与 doxygen 稍有不同,因此 function()
应该变为 function name()
。
您可以在我的 GitHub repository 上获取一些过滤器示例。
更新:
我想出了这个你可以用作过滤器的正则表达式
$regexp = '#(\/\*\*[\s\S]*?\*\/\s*)?(\\?Cron\s*::\s*add\()(\'|")([^,\']+)(\'|")(\s*,\s*[^,]+\s*,\s*)(\/\*\*[\s\S]*?\*\/\s*)?function\s*\(\s*\)#';
$replace = 'public function ()';
$source = preg_replace($regexp, $replace, $source);
它做了两件事:
- 它将您的文档评论移动到正确的位置
- 它给匿名函数一个名字和一个访问修饰符
所以两者
/**
* Docs
*/
\Cron::add('job-expired', '* * * * *', function()
{
...
});
和
\Cron::add('job-expired', '* * * * *',
/**
* Docs
*/
function()
{
...
});
成为
/**
* Docs
*/
public function job-expired()
{
...
});
您可以试一试,我会将其添加到 git 存储库中。
我有一个第三方包,其范围为 resolution/facade 类型的 cron 函数,如下所示
\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
*/
我知道 class 或函数标签注释,除了上述类型的函数注释外,这些都工作正常。
有人可以帮我如何评论这种功能吗?
我没试过这个:
我认为 Doxygen 不会记录您的代码,因为它在文档块后找不到预期的关键字。
所以如果你这样写可能会奏效:
\Cron::add('job-expired', '* * * * *',
/**
* Documentation here
*/
function()
{
...
});
如果这也不起作用,您可能必须使用过滤器使代码看起来与 doxygen 稍有不同,因此 function()
应该变为 function name()
。
您可以在我的 GitHub repository 上获取一些过滤器示例。
更新: 我想出了这个你可以用作过滤器的正则表达式
$regexp = '#(\/\*\*[\s\S]*?\*\/\s*)?(\\?Cron\s*::\s*add\()(\'|")([^,\']+)(\'|")(\s*,\s*[^,]+\s*,\s*)(\/\*\*[\s\S]*?\*\/\s*)?function\s*\(\s*\)#';
$replace = 'public function ()';
$source = preg_replace($regexp, $replace, $source);
它做了两件事:
- 它将您的文档评论移动到正确的位置
- 它给匿名函数一个名字和一个访问修饰符
所以两者
/**
* Docs
*/
\Cron::add('job-expired', '* * * * *', function()
{
...
});
和
\Cron::add('job-expired', '* * * * *',
/**
* Docs
*/
function()
{
...
});
成为
/**
* Docs
*/
public function job-expired()
{
...
});
您可以试一试,我会将其添加到 git 存储库中。