我们已经对Doxygen产生了浓厚的兴趣,它显然可以创建外观最好的文档.
但是,我们使用PHP,并且在生成的文档中只是忽略/不存在Traits.
我们在这里错过了一个把戏吗,还是特质根本不兼容?
解决方法:
性状只是不受氧的支持.
由于PHP不支持从多个类继承,因此traits是通过多个“类”的功能扩展类的方法.
C确实支持从多个类继承,因此请尝试使用以下过滤器:
// make traits to classes
$regexp = '#trait([\s]+[\S]+[\s]*){#';
$replace = 'class$1{';
$source = preg_replace($regexp, $replace, $source);
// use traits by extending them (classes that not extending a class)
$regexp = '#class([\s]+[\S]+[\s]*)(implements[\s]+[\S]+[\s]*)?{[\s]+use([^;]+);#';
$replace = 'class$1 extends $3 $2 {';
$source = preg_replace($regexp, $replace, $source);
// use traits by extending them (classes that already extending a class)
$regexp = '#class([\s]+[\S]+[\s]+extends[\s]+[\S]+[\s]*)(implements[\s]+[\S]+[\s]*){[\s]+use([^;]+);#';
$replace = 'class$1, $3 $2{';
$source = preg_replace($regexp, $replace, $source);
该过滤器可以:
>将特质转换为类
trait MyTrait{ ... }
变成
class MyTrait{ ... }
>将“使用”特征转换为“扩展”特征
class MyClass{
use MyTrait1, MyTrait2;
...
}
变成
class MyClass extends MyTrait, MyTrait2{
...
}
Doxygen将其记录为多重继承.也许这对你有用.
您可以找到这个以及更多doxygen filters for PHP in my repository on GitHub.