Passed
Push — master ( 74fbac...a461f1 )
by Jean-Christophe
04:58
created

Yuml::setPropertyVariables()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 2
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Ubiquity\utils\yuml;
4
5
class Yuml {
6
	public static $classMask='[{classContent}]';
7
	public static $classSeparator='|';
8
	public static $memberSeparator=';';
9
	public static $parameterSeparator='‚';
10
	public static $parameterTypeSeparator=':';
11
	public static $groupeSeparator=",";
12
	public static $propertyMask='{access}{primary}{name}{type}';
13
	public static $methodMask='{access}{name}({parameters}){type}';
14
	public static $public='+';
15
	public static $protected='#';
16
	public static $private='-';
17
	public static $primary='«pk» ';
18
19 1
	public static function parseMask($element,$variable,$value) {
20 1
		$result=preg_replace('/(\{)'.$variable.'(\})/sim', $value, $element);
21 1
		return $result;
22
	}
23
24 1
	public static function parseMaskArray($element,$variables,$values) {
25 1
		$result=$element;
26 1
		$countValues=\sizeof($values);
27 1
		$maxVariables=\sizeof($variables)-1;
28 1
		for($i=0;$i<$countValues;$i++){
29 1
			$j=\min($maxVariables,$i);
30 1
			$result=self::parseMask($result, $variables[$j], $values[$i]);
31
		}
32 1
		return $result;
33
	}
34
35 1
	public static function getNamesInMask($mask){
36 1
		\preg_match_all('@\{(.*?)\}@sim', $mask,$matches);
37 1
		if(isset($matches[1]))
38 1
			return $matches[1];
39
		return [];
40
	}
41
42 1
	private static function replaceMaskValues($mask,$values){
43 1
		return self::parseMaskArray($mask, self::getNamesInMask($mask), $values);
44
	}
45
46 1
	public static function setPropertyVariables($values){
47 1
		return self::replaceMaskValues(self::$propertyMask, $values);
48
	}
49
50
	public static function setMethodVariables($values){
51
		return self::replaceMaskValues(self::$methodMask, $values);
52
	}
53
54 1
	public static function setClassContent($content){
55 1
		return self::parseMask(self::$classMask, 'classContent', $content);
56
	}
57
}
58