includes/source/class-request-guard.php * * @package AccessNow\Replica */ namespace AccessNow\Replica; defined( 'ABSPATH' ) || exit; /** * Maps plugin classes to files. */ final class Autoloader { const PREFIX = __NAMESPACE__ . '\\'; /** * Registers the autoloader. */ public static function register() { spl_autoload_register( array( __CLASS__, 'load' ) ); } /** * Loads a class file if it belongs to this plugin. * * @param string $class_name Fully qualified class name. */ public static function load( $class_name ) { if ( 0 !== strpos( $class_name, self::PREFIX ) ) { return; } $parts = explode( '\\', substr( $class_name, strlen( self::PREFIX ) ) ); $class = array_pop( $parts ); $dirs = array_map( static function ( $dir ) { return strtolower( str_replace( '_', '-', $dir ) ); }, $parts ); $file = 'class-' . strtolower( str_replace( '_', '-', $class ) ) . '.php'; $path = ACCESSNOW_REPLICA_DIR . 'includes/' . ( $dirs ? implode( '/', $dirs ) . '/' : '' ) . $file; if ( is_readable( $path ) ) { require_once $path; } } }