Conditions | 7 |
Paths | 8 |
Total Lines | 59 |
Code Lines | 45 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
31 | static public function getPHPInfo() { |
||
32 | |||
33 | if ( isset( self::$_aPHPInfo ) ) { |
||
34 | return self::$_aPHPInfo; |
||
35 | } |
||
36 | |||
37 | ob_start(); |
||
38 | phpinfo( -1 ); |
||
39 | |||
40 | $_sOutput = preg_replace( |
||
41 | array( |
||
42 | '#^.*<body>(.*)</body>.*$#ms', '#<h2>PHP License</h2>.*$#ms', |
||
43 | '#<h1>Configuration</h1>#', "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#', |
||
44 | "#[ \t]+#", '# #', '# +#', '# class=".*?"#', '%'%', |
||
45 | '#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a>' |
||
46 | .'<h1>PHP Version (.*?)</h1>(?:\n+?)</td></tr>#', |
||
47 | '#<h1><a href="(?:.*?)\?=(.*?)">PHP Credits</a></h1>#', |
||
48 | '#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#', |
||
49 | "# +#", |
||
50 | '#<tr>#', |
||
51 | '#</tr>#' |
||
52 | ), |
||
53 | array( |
||
54 | '$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ', |
||
55 | '<h2>PHP Configuration</h2>'."\n".'<tr><td>PHP Version</td><td>$2</td></tr>'. |
||
56 | "\n".'<tr><td>PHP Egg</td><td>$1</td></tr>', |
||
57 | '<tr><td>PHP Credits Egg</td><td>$1</td></tr>', |
||
58 | '<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" . '<tr><td>Zend Egg</td><td>$1</td></tr>', |
||
59 | ' ', |
||
60 | '%S%', |
||
61 | '%E%' |
||
62 | ), |
||
63 | ob_get_clean() |
||
64 | ); |
||
65 | |||
66 | $_aSections = explode( '<h2>', strip_tags( $_sOutput, '<h2><th><td>' ) ); |
||
67 | unset( $_aSections[ 0 ] ); |
||
68 | |||
69 | $_aOutput = array(); |
||
70 | foreach( $_aSections as $_sSection ) { |
||
71 | $_iIndex = substr( $_sSection, 0, strpos( $_sSection, '</h2>' ) ); |
||
72 | preg_match_all( |
||
73 | '#%S%(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?%E%#', |
||
74 | $_sSection, |
||
75 | $_aAskApache, |
||
76 | PREG_SET_ORDER |
||
77 | ); |
||
78 | foreach( $_aAskApache as $_aMatches ) { |
||
79 | if ( ! isset( $_aMatches[ 1 ], $_aMatches[ 2 ] ) ) { |
||
80 | array_slice( $_aMatches, 2 ); |
||
81 | continue; |
||
82 | } |
||
83 | $_aOutput[ $_iIndex ][ $_aMatches[ 1 ] ] = ! isset( $_aMatches[ 3 ] ) || $_aMatches[ 2 ] == $_aMatches[ 3 ] |
||
84 | ? $_aMatches[ 2 ] |
||
85 | : array_slice( $_aMatches, 2 ); |
||
86 | } |
||
87 | } |
||
88 | self::$_aPHPInfo = $_aOutput; |
||
89 | return self::$_aPHPInfo; |
||
90 | |||
148 |