Exemplo n.º 1
0
/**
 * Autoloader, load or create classes and objects.
 * @package Clockwork/Core
 *
 * @param string $class Class to load.
 *
 * @return void
 */
function autoload($class)
{
    $file = $class . '.php';
    //core
    if (file_exists(CORE_DIR . $file)) {
        include_once CORE_DIR . $file;
    } else {
        if (file_exists(APP_DIR . 'model/' . $file)) {
            include_once APP_DIR . 'model/' . $file;
        } else {
            //plugin
            $pclass = explode('_', $class);
            if (Clockwork::isPluginLoaded($pclass[0])) {
                $file = Plugin::getInstance($pclass[0])->dir() . 'model/' . $pclass[1] . '.php';
                if (file_exists($file)) {
                    include_once $file;
                    $loaded = true;
                }
            }
            //
            if (!isset($loaded)) {
                $code = 'class ' . $class . ' extends Model
                         {
                             public function __construct($mixed = null, $column = \'id\')
                             {
                                 parent::__construct($mixed, $column);
                             }
                         }';
                eval($code);
            }
        }
    }
}