Created
February 27, 2013 17:47
-
-
Save Rarst/5049915 to your computer and use it in GitHub Desktop.
Generic autoloader for classes named in WordPress coding style.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if ( ! class_exists( 'Autoload_WP' ) ) { | |
/** | |
* Generic autoloader for classes named in WordPress coding style. | |
*/ | |
class Autoload_WP { | |
public $dir = __DIR__; | |
function __construct( $dir = '' ) { | |
if ( ! empty( $dir ) ) | |
$this->dir = $dir; | |
spl_autoload_register( array( $this, 'spl_autoload_register' ) ); | |
} | |
function spl_autoload_register( $class_name ) { | |
$class_path = $this->dir . '/class-' . strtolower( str_replace( '_', '-', $class_name ) ) . '.php'; | |
if ( file_exists( $class_path ) ) | |
include $class_path; | |
} | |
} | |
} |
You can append the sub folder name that you need in the constructor, to the dir property. And choosing to have your own autoloading class with a different name.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Changing the original comment since I found out what was wrong.
This autoloader didn't work for a class which was in a sub folder of my plugin. It ends up appending the 'class' term to the sub folder name and not the actual class file.