Doxygen正在跳过使用php _构造()的文件
我正在使用codeigniter框架开发一个网站。为了记录它,我安装了doxygen。当doxygen遇到具有以下结构的文件时,会发生一些奇怪的事情: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
<?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 */