1: <?php
2:
3: 4: 5:
6: class Papi_Core_Autoload {
7:
8: 9: 10: 11: 12:
13: public function __construct() {
14: spl_autoload_register( [$this, 'autoload'] );
15: }
16:
17: 18: 19: 20: 21: 22: 23:
24: public function autoload( $class ) {
25: $class = strtolower( $class );
26: $file = 'class-' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
27: $path = PAPI_PLUGIN_DIR;
28:
29: if ( strpos( $class, 'papi_admin' ) === 0 ) {
30: $path .= 'admin/';
31: } else if ( strpos( $class, 'papi_conditional_' ) === 0 ) {
32: $path .= 'conditional/';
33: } else if ( strpos( $class, 'papi_core_' ) === 0 ) {
34: $path .= 'core/';
35: } else if ( preg_match( '/^papi\_\w+\_page$/', $class ) ) {
36: $path .= 'pages/';
37: } else if ( strpos( $class, 'papi_porter' ) === 0 ) {
38: $path .= 'porter/';
39: } else if ( strpos( $class, 'papi_property' ) === 0 ) {
40: $path .= 'properties/';
41: } else if ( preg_match( '/^papi\_\w+\_type/', $class ) ) {
42: $path .= 'types/';
43: }
44:
45: if ( is_readable( $path . $file ) ) {
46: require_once $path . $file;
47: }
48: }
49: }
50:
51: new Papi_Core_Autoload();
52: