Skip to content

Commit 67e77ea

Browse files
committed
Doxyden input filter for php traits
1 parent 9e80e50 commit 67e77ea

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

documentation/filters/traits.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
/**
3+
* Project: doxygen-php-filters
4+
* Author: Alex Schickedanz (AbcAeffchen)
5+
* Date: 05.03.2015
6+
* License: GPL v2.0
7+
*/
8+
9+
// Get the input
10+
$source = file_get_contents($argv[1]);
11+
12+
// make traits to classes
13+
$regexp = '#trait([\s]+[\S]+[\s]*){#';
14+
$replace = 'class$1{';
15+
$source = preg_replace($regexp, $replace, $source);
16+
17+
// use traits by extending them (classes that not extending a class)
18+
$regexp = '#class([\s]+[\S]+[\s]*)(implements[\s]+[\S]+[\s]*)?{[\s]+use([^;]+);#';
19+
$replace = 'class$1 extends $3 $2 {';
20+
$source = preg_replace($regexp, $replace, $source);
21+
22+
// use traits by extending them (classes that already extending a class)
23+
$regexp = '#class([\s]+[\S]+[\s]+extends[\s]+[\S]+[\s]*)(implements[\s]+[\S]+[\s]*)?{[\s]+use([^;]+);#';
24+
$replace = 'class$1, $3 $2{';
25+
$source = preg_replace($regexp, $replace, $source);
26+
27+
// Output
28+
echo $source;

0 commit comments

Comments
 (0)