<?php 
/** 
 * PureMVC PHP Class Autoloader 
 * @author Omar Gonzalez :: [email protected] 
 * @author Hasan Otuome :: [email protected]  
 * 
 * Class auto-loader for use with the PureMVC Port for PHP.  
 *  
 * While it's usage is completely optional, usage will reduce  
 * the amount of require(), require_once(), include() and include_once()  
 * statements you would need to write. 
 * 
 * It also provides the benefit of allowing you to centralize the location of  
 * your PureMVC framework to just one location. 
 *  
 * USAGE: 
 * 1) Change the paths listed in the $_includePaths array to match your PureMVC PHP install paths. 
 * 2) Add a require_once() statement to your index or bootstrap PHP file. 
 *         ie., require_once 'path/to/puremvc_autoloader.php'; 
 */ 
 
/** 
 * Defines a constant that indicates that the base directory ("root") for lookups should be  
 * the directory in which this file is located in. 
 */ 
//define( 'PMVC_BASE_DIR', __DIR__ ); 
 
/** 
 * Checks all paths defined in $_includePaths for  
 * the existence of $class and loads $class if found. 
 *  
 * @param string $class The class to search for. 
 */ 
 
 
/** 
 * @see http://www.php-fig.org/psr/psr-4/examples/ 
 */ 
spl_autoload_register(function ($class) { 
    // project-specific namespace prefix 
    $prefix = 'puremvc\php\\'; 
 
    // base directory for the namespace prefix 
    $base_dir = __DIR__ . '/org/puremvc/php/'; 
 
    // does the class use the namespace prefix? 
    $len      = strlen($prefix); 
 
    if (0 !== strncmp($prefix, $class, $len)) { 
        return; 
    } 
 
    // get the relative class name 
    $relativeClass = substr($class, $len); 
 
    // replace the namespace prefix with the base directory, replace namespace 
    // separators with directory separators in the relative class name, append 
    // with .php 
    $file           = $base_dir . str_replace('\\', '/', $relativeClass) . '.php'; 
 
    // if the file exists, require it 
    if (file_exists($file)) { 
        require $file; 
    } 
}); 
 
 |