Merge "Add tests for WikiMap and WikiReference"
[lhc/web/wiklou.git] / maintenance / mwdoc-filter.php
1 <?php
2 /**
3 * Doxygen filter to show correct member variable types in documentation.
4 *
5 * Should be filled in doxygen INPUT_FILTER as "php mwdoc-filter.php"
6 *
7 * Original source code by Goran Rakic
8 * http://blog.goranrakic.com/
9 * http://stackoverflow.com/questions/4325224
10 *
11 * @file
12 */
13
14 if ( PHP_SAPI != 'cli' ) {
15 die( "This filter can only be run from the command line.\n" );
16 }
17
18 $source = file_get_contents( $argv[1] );
19 $regexp = '#'
20 . '\@var'
21 . '\s+'
22 // Type hint
23 . '([^\s]+)'
24 . '\s+'
25 // Any text or line(s) between type hint and '/' closing the comment
26 // (includes the star of "*/"). Descriptions containing a slash
27 // are not supported. Those will have to to be rewritten to have their
28 // description *before* the @var:
29 // /**
30 // * Description with / in it.
31 // * @var array
32 // */
33 // instead of:
34 // /**
35 // * @var array Description with / in it.
36 // */
37 . '([^/]+)'
38 . '/'
39 . '\s+'
40 . '(var|public|protected|private)'
41 . '\s+'
42 // Variable name
43 . '(\$[^\s;=]+)'
44 . '#';
45 $replac = '${2}/ ${3} ${1} ${4}';
46 $source = preg_replace( $regexp, $replac, $source );
47
48 echo $source;