Gav*_*vin 3 php doxygen traits
我们已经对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);
Run Code Online (Sandbox Code Playgroud)
该过滤器可以:
将特质转换为类
trait MyTrait{ ... }
Run Code Online (Sandbox Code Playgroud)
变成
class MyTrait{ ... }
Run Code Online (Sandbox Code Playgroud)将“使用”特征转换为“扩展”特征
class MyClass{
use MyTrait1, MyTrait2;
...
}
Run Code Online (Sandbox Code Playgroud)
变成
class MyClass extends MyTrait, MyTrait2{
...
}
Run Code Online (Sandbox Code Playgroud)Doxygen将其记录为多重继承。也许这对你有用。
您可以在我在GitHub上的存储库中找到这个以及更多用于PHP的doxygen过滤器。
归档时间: |
|
查看次数: |
1783 次 |
最近记录: |