Completed
Push — sync/require-lib ( cb01a1 )
by
unknown
17:14
created

require-lib.php ➔ require_lib_from_dir()   B

Complexity

Conditions 5
Paths 7

Size

Total Lines 31
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 17
nc 7
nop 2
dl 0
loc 31
rs 8.439
c 0
b 0
f 0
1
<?php
2
3
function require_lib_from_dir( $slug, $lib_dir ) {
4
	if ( !preg_match( '|^[a-z0-9/_.-]+$|i', $slug ) ) {
5
		trigger_error( "Cannot load a library with invalid slug $slug.", E_USER_ERROR );
6
		return;
7
	}
8
	$basename = basename( $slug );
9
10
	/**
11
	 * Filter the location of the library directory.
12
	 *
13
	 * @since 2.5.0
14
	 *
15
	 * @param string $lib_dir Path to the library directory.
16
	 */
17
	$lib_dir = apply_filters( 'jetpack_require_lib_dir', $lib_dir );
18
	$choices = array(
19
		"$lib_dir/$slug.php",
20
		"$lib_dir/$slug/0-load.php",
21
		"$lib_dir/$slug/$basename.php",
22
	);
23
	if ( defined( 'JETPACK__PLUGIN_DIR' ) ) {
24
		$choices[] = JETPACK__PLUGIN_DIR . '/_inc/lib';
25
	}
26
	foreach( $choices as $file_name ) {
27
		if ( is_readable( $file_name ) ) {
28
			require_once $file_name;
29
			return;
30
		}
31
	}
32
	trigger_error( "Cannot find a library with slug $slug.", E_USER_ERROR );
33
}
34
35
function jetpack_require_lib( $slug ) {
36
	if ( defined( 'ABSPATH' ) && ! defined( 'WP_CONTENT_DIR' ) ) {
37
		define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down
38
	}
39
40
	require_lib_from_dir( $slug, WP_CONTENT_DIR . '/lib' );
41
}
42
43
function jetpack_require_lib( $slug ) {
0 ignored issues
show
Best Practice introduced by
The function jetpack_require_lib() has been defined more than once; this definition is ignored, only the first definition in this file (L35-41) is considered.

This check looks for functions that have already been defined in the same file.

Some Codebases, like WordPress, make a practice of defining functions multiple times. This may lead to problems with the detection of function parameters and types. If you really need to do this, you can mark the duplicate definition with the @ignore annotation.

/**
 * @ignore
 */
function getUser() {

}

function getUser($id, $realm) {

}

See also the PhpDoc documentation for @ignore.

Loading history...
44
	return jetpack_require_lib( $slug );
45
}
46