<?php /** * Autoload plugin classes. */ class RWMB_Autoloader { protected $dirs = []; /** * Adds a base directory for a class name prefix and/or suffix. * * @param string $dir A base directory for class files. * @param string $prefix The class name prefix. * @param string $suffix The class name suffix. */ public function add( string $dir, string $prefix, string $suffix = '' ) { $this->dirs[] = [ 'dir' => trailingslashit( $dir ), 'prefix' => $prefix, 'suffix' => $suffix, ]; } public function register() { spl_autoload_register( [ $this, 'autoload' ] ); } public function autoload( string $class_name ) { foreach ( $this->dirs as $dir ) { if ( ( $dir['prefix'] && ! str_starts_with( $class_name, $dir['prefix'] ) ) || ( $dir['suffix'] && ! str_ends_with( $class_name, $dir['suffix'] ) ) ) { continue; } $file = substr( $class_name, strlen( $dir['prefix'] ) ); if ( $dir['suffix'] && strlen( $file ) > strlen( $dir['suffix'] ) ) { $file = substr( $file, 0, - strlen( $dir['suffix'] ) ); } if ( function_exists( 'mb_strtolower' ) && function_exists( 'mb_detect_encoding' ) ) { $file = mb_strtolower( str_replace( '_', '-', $file ), mb_detect_encoding( $file ) ) . '.php'; } else { $file = strtolower( str_replace( '_', '-', $file ) ) . '.php'; } $file = $dir['dir'] . $file; $this->require( $file ); } } private function require( string $file ) { if ( file_exists( $file ) ) { require_once $file; } } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
about | Folder | 0755 |
|
|
fields | Folder | 0755 |
|
|
helpers | Folder | 0755 |
|
|
interfaces | Folder | 0755 |
|
|
storages | Folder | 0755 |
|
|
templates | Folder | 0755 |
|
|
walkers | Folder | 0755 |
|
|
autoloader.php | File | 1.49 KB | 0644 |
|
clone.php | File | 3.5 KB | 0644 |
|
core.php | File | 2.53 KB | 0644 |
|
field-registry.php | File | 1.63 KB | 0644 |
|
field.php | File | 17.95 KB | 0644 |
|
functions.php | File | 9.5 KB | 0644 |
|
loader.php | File | 3.97 KB | 0644 |
|
media-modal.php | File | 3.09 KB | 0644 |
|
meta-box-registry.php | File | 1.28 KB | 0644 |
|
meta-box.php | File | 12 KB | 0644 |
|
request.php | File | 2.35 KB | 0644 |
|
sanitizer.php | File | 8.14 KB | 0644 |
|
shortcode.php | File | 2.55 KB | 0644 |
|
storage-registry.php | File | 418 B | 0644 |
|
validation.php | File | 2.59 KB | 0644 |
|
wpml.php | File | 3.48 KB | 0644 |
|