编程语言
首页 > 编程语言> > Doxygen-PHP特性

Doxygen-PHP特性

作者:互联网

我们已经对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.

标签:traits,doxygen,php
来源: https://codeday.me/bug/20191029/1956780.html