base_dir = rtrim( $base_dir, DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR; } /** * Register the autoloader with spl_autoload_register. * * @since 3.0.0 * * @return void */ public function register(): void { spl_autoload_register( array( $this, 'autoload' ) ); } /** * Autoload a class file based on its fully-qualified class name. * * @since 3.0.0 * * @param string $class The fully-qualified class name. * @return void */ public function autoload( string $class ): void { if ( strpos( $class, self::NAMESPACE_PREFIX ) !== 0 ) { return; } $relative_class = substr( $class, strlen( self::NAMESPACE_PREFIX ) ); $file = $this->base_dir . str_replace( '\\', DIRECTORY_SEPARATOR, $relative_class ) . '.php'; if ( file_exists( $file ) ) { require_once $file; } } }