【问题标题】:Doxygen comments for LaravelLaravel 的 Doxygen 评论
【发布时间】:2016-09-27 07:15:32
【问题描述】:

我有一个第三方包,它具有如下范围解析/外观类型 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>';
    }
});

以下 cmets 不适用于此类功能。

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

我知道类或函数标签 cmets,除了上述类型的函数 cmets 之外,这些都可以正常工作。

谁能帮我评论一下这种类型的功能?

【问题讨论】:

  • 有人可以检查一下吗?
  • 您提供的 php 代码缺少某些内容。这是实际的代码还是只是一个例子?如果是实际代码,doxygen 可能会被错误的括号弄糊涂。
  • 现在请检查.. 这是 laravel 代码

标签: php laravel-5 doxygen


【解决方案1】:

这个我没试过:

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

所以如果你这样写,也许它会起作用:

\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 = '$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 存储库中。

【讨论】:

  • 我应该使用github.com/AbcAeffchen/doxygen-php-filters中的哪个函数
  • @madankundu 没有适合您的功能。如果我的第一个想法行不通,你必须自己写一个。该链接仅用于示例过滤器的外观。
  • @AbcAeffchen 你的第一个想法行不通。如果可能的话,我会检查自定义
  • @AbcAeffchen 这是定制的,谢谢。谢谢
  • @madankundu 您想分享您的解决方案吗?也许我可以将它添加到 GitHub 上的过滤器集合中
猜你喜欢
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
相关资源
最近更新 更多