在类定义/氧气问题之前检查CLASS_EXISTS

时间:2018-11-16 作者:Carsten Schmitt

当前,当我为WordPress创建一个类时,我用

if ( ! class_exist( \'class_i_want_create\' ) ) :
    .... 
    class_definition
    ....
endif;
但现在我想用Doxygen创建一个文档。但当Doxygen被class_exist.

所以,当我不在它周围class_exist?或者有人知道我如何配置Doxygen来查看这个类,即使它被class_exist?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

看起来doxygen在这类代码上有一些问题,但是。。。有一些解决方案。。。

您可以使用INPUT_FILTER是的。doxygen文档之后:

INPUT\\u FILTER标记可用于指定doxygen应调用的程序,以过滤每个输入文件。Doxygen将通过执行(通过popen())命令来调用过滤器程序:

因此,您可以将此脚本用作过滤器(如本答案中所建议的:https://stackoverflow.com/a/26206860/217040):

<?php
    $source = file_get_contents($argv[1]);
    $regexp = \'#(<\\?php[\\s]+)(if\\(!class_exists\\([^\\)]+\\)\\)\\{)([\\s\\S]*)(\\})([\\s]*\\?>)#\';
    $replace = \'$1 $3 $5\';
    $source = preg_replace($regexp, $replace, $source);
    echo $source;
?>
或者另一个(https://stackoverflow.com/a/25655189/217040):

// input
$source = file_get_contents($argv[1]);

// removes the whole line
list($head,$tail) = preg_split(\'/.*if\\(!class_exists\\(.+/\', $source, 2);   

$openingBracePos = strpos($tail,\'{\');
$closingBracePos = strrpos($tail,\'}\');

if($openingBracePos !== false && $closingBracePos !== false)
    $source = $head . substr($tail,$openingBracePos+1,
                             $closingBracePos-$openingBracePos-1);

echo $source;

结束

相关推荐

根据归档文件中的分类筛选器更改标题-{cpt}.php

所以我有自定义帖子类型的页面RENTAL 使用以下自定义分类:Merk -- 条款:本田、大发、丰田等Kendaraan -- 母公司术语:Mobil、Bus、Motor&;子术语:MPV、掀背车、轿车等Seat -- 条款:2座、4座、8座等What I Wanted to Achieve我希望根据用于筛选的分类法更改带有分类法筛选器的存档页面中的标题H1,例如:https://example.com/rental/?kendaraan=mobil&merk=honda&seat=