| Conditions | 5 |
| Paths | 7 |
| Total Lines | 31 |
| Code Lines | 17 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 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 | |||
| 46 |
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
@ignoreannotation.See also the PhpDoc documentation for @ignore.