对Laravel的评论


Doxygen comments for Laravel

我有一个第三方包,它具有作用域解析/外观类型的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
 */

我知道类或函数标签注释,这些都很好,除了上面的类型函数注释。

谁能帮我如何注释这种类型的函数?

我还没试过:

我认为Doxygen没有记录你的代码,因为它在doc块之后找不到预期的关键字。

所以如果你这样写它可能会起作用:

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

如果这也不起作用,你可能必须使用过滤器使代码看起来与氧气有点不同,所以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仓库