GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

XmlFileProvider   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 13
c 2
b 0
f 0
dl 0
loc 44
rs 10
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A loadXmlFiles() 0 8 1
A readDirectory() 0 8 2
A __construct() 0 2 1
A getFiles() 0 2 1
1
<?php
2
/**
3
 *
4
 * @copyright 2011 - 2016, Stephan Gambke, mwjames
5
 *
6
 * @license GPL-2.0-or-later
7
 *
8
 * This file is part of the MediaWiki extension Lingo.
9
 * The Lingo extension is free software: you can redistribute it and/or modify
10
 * it under the terms of the GNU General Public License as published by the Free
11
 * Software Foundation; either version 2 of the License, or (at your option) any
12
 * later version.
13
 *
14
 * The Lingo extension is distributed in the hope that it will be useful, but
15
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17
 * details.
18
 *
19
 * You should have received a copy of the GNU General Public License along
20
 * with this program. If not, see <http://www.gnu.org/licenses/>.
21
 *
22
 * @since 2.0.1
23
 * @file
24
 * @ingroup Lingo
25
 * @ingroup Test
26
 */
27
28
namespace Lingo\Tests\Util;
29
30
use RuntimeException;
31
32
/**
33
 * @since 2.0.1
34
 * @author mwjames, Stephan Gambke
35
 * @ingroup Lingo
36
 * @ingroup Test
37
 */
38
class XmlFileProvider {
39
40
	protected $path = null;
41
42
	/**
43
	 * @param string $path
44
	 */
45
	public function __construct( $path ) {
46
		$this->path = $path;
47
	}
48
49
	/**
50
	 * @return string[]
51
	 */
52
	public function getFiles() {
53
		return $this->loadXmlFiles( $this->readDirectory( $this->path ) );
54
	}
55
56
	/**
57
	 * @param String $path
58
	 * @return string
59
	 */
60
	protected function readDirectory( $path ) {
61
		$path = str_replace( [ '\\', '/' ], DIRECTORY_SEPARATOR, $path );
62
63
		if ( is_readable( $path ) ) {
64
			return $path;
65
		}
66
67
		throw new RuntimeException( "Expected an accessible {$path} path" );
0 ignored issues
show
Coding Style Best Practice introduced by Stephan Gambke
As per coding-style, please use concatenation or sprintf for the variable $path instead of interpolation.

It is generally a best practice as it is often more readable to use concatenation instead of interpolation for variables inside strings.

// Instead of
$x = "foo $bar $baz";

// Better use either
$x = "foo " . $bar . " " . $baz;
$x = sprintf("foo %s %s", $bar, $baz);
Loading history...
68
	}
69
70
	/**
71
	 * @param String $path
72
	 * @return string[]
73
	 */
74
	protected function loadXmlFiles( $path ) {
75
		$directoryIterator = new \RecursiveDirectoryIterator( $path );
76
		$iteratorIterator = new \RecursiveIteratorIterator( $directoryIterator );
77
		$regexIterator = new \RegexIterator( $iteratorIterator, '/^.+\.xml$/i', \RecursiveRegexIterator::GET_MATCH );
78
79
		$files = call_user_func_array( 'array_merge', iterator_to_array( $regexIterator ) );
80
81
		return $files;
82
	}
83
84
}
85