54 lines
1.2 KiB
PHP
54 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* A modules class for Jetpack.
|
|
*
|
|
* @package automattic/jetpack-status
|
|
*/
|
|
|
|
namespace Automattic\Jetpack;
|
|
|
|
/**
|
|
* Class Automattic\Jetpack\Files
|
|
*
|
|
* Used to retrieve information about files.
|
|
*/
|
|
class Files {
|
|
/**
|
|
* Returns an array of all PHP files in the specified absolute path.
|
|
* Equivalent to glob( "$absolute_path/*.php" ).
|
|
*
|
|
* @param string $absolute_path The absolute path of the directory to search.
|
|
* @return array Array of absolute paths to the PHP files.
|
|
*/
|
|
public function glob_php( $absolute_path ) {
|
|
if ( function_exists( 'glob' ) ) {
|
|
return glob( "$absolute_path/*.php" );
|
|
}
|
|
|
|
$absolute_path = untrailingslashit( $absolute_path );
|
|
$files = array();
|
|
$dir = @opendir( $absolute_path ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
|
|
if ( ! $dir ) {
|
|
return $files;
|
|
}
|
|
|
|
// phpcs:ignore Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
|
|
while ( false !== $file = readdir( $dir ) ) {
|
|
if ( str_starts_with( $file, '.' ) || ! str_ends_with( $file, '.php' ) ) {
|
|
continue;
|
|
}
|
|
|
|
$file = "$absolute_path/$file";
|
|
|
|
if ( ! is_file( $file ) ) {
|
|
continue;
|
|
}
|
|
|
|
$files[] = $file;
|
|
}
|
|
|
|
closedir( $dir );
|
|
|
|
return $files;
|
|
}
|
|
}
|