Doxygen正在跳过使用php _构造()的文件

Doxygen正在跳过使用php _构造()的文件,php,codeigniter,doxygen,Php,Codeigniter,Doxygen,我正在使用codeigniter框架开发一个网站。为了记录它,我安装了doxygen。当doxygen遇到具有以下结构的文件时,会发生一些奇怪的事情: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * @class * @brief The class brief */ class Catalogo extends CI_Controller { pu

我正在使用codeigniter框架开发一个网站。为了记录它,我安装了doxygen。当doxygen遇到具有以下结构的文件时,会发生一些奇怪的事情:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * @class
 * @brief The class brief 
 */
  class Catalogo extends CI_Controller {    
    public function __construct(){         
        parent::__construct();
        $this->load->model('catalogomodel');
        $this->load->library('img');
   }
    public function foo(){
       ..some code..
    }
/* End of file catalogo.php */
/* Location: ./application/controllers/catalogo.php */

我不确定您提供的示例与实际应用程序的匹配程度,但对于上面的原始示例代码:

您的类声明似乎未关闭(缺少
}
)。这将阻止doxygen解析类声明,并将跳过它。添加结束符
}
允许doxygen完全解析该类,它应该包含在文档中,但是不会出现该类或其成员函数的文档,
\u construct
不会作为成员函数列出

进行此更改后,Doxygen 1.8.0在处理内容时会报告两个警告:

catalogo.php:6: warning: Compound Catalogo is not documented.
catalogo.php:13: warning: Member foo() (function) of class Catalogo is not documented.
第一个与空的
@class
标记相关。Doxygen希望
@class
后面紧跟注释所应用的类名,通常在Doxygen不位于其描述的构造旁边时使用。在这种情况下,可以删除
@class
,因为
Catalogo
类声明紧跟其后。或者,也可以显式指定
@class Catalogo
。进行此更改将使第一个警告静音,并将导致doxygen输出中出现
Catalogo
的文档,但是
\uu construct
仍将不存在,并且
foo
将不会链接到详细描述

要解决第二个警告,您需要提供
foo
的文档,例如:

/**
 * Documentation for foo.
 */
public function foo(){
}
此更改将导致文档中出现
foo
,并带有指向其详细说明的链接<代码>\u构造
仍将不存在,但为其添加了类似的文档:

/**
 * Documentation for __construct.
 */
public function __construct() {         
}
使这两个函数都显示其详细说明的链接。这一切都假定默认的doxygen配置(
doxygen-g
)和doxygen 1.8.0。我测试的最后一个代码(似乎运行良好)是:


您在
\uuu construct()
之前是否尝试过docblock?+1获得了一个很好的答案。我在这里是由我自己的错误导致的,对于未来的用户来说,这是我用
/***
开始我的评论(我的IDE自动为我完成了这一点)。
/**
 * Documentation for __construct.
 */
public function __construct() {         
}
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * @brief The class brief 
 */
class Catalogo extends CI_Controller {
    /**
     * Documentation for __construct.
     */
    public function __construct(){         
        parent::__construct();
        $this->load->model('catalogomodel');
        $this->load->library('img');
    }

    /**
     * Documentation for foo.
     */
    public function foo(){
        ..some code..
    }
}
/* End of file catalogo.php */
/* Location: ./application/controllers/catalogo.php */