<?php

CandyAutoLoader::uses(array('File', 'Folder', 'String', 'I18n', 'L10n', 'Security', 'Xml'), 'Core');
class CandyAutoLoader
{
    protected static $_map = array();
    protected static $_tried = array();
    public static function uses($classes, $options = array())
    {
        $default = array('type' => 'Lib');
        if (is_string($options)) {
            $options = array('type' => $options);
        }
        $options = array_merge($default, $options);
        foreach ((array) $classes as $class) {
            self::$_map[$class] = $options;
        }
    }
    public static function load($class)
    {
        if (isset(self::$_map[$class]) && !in_array($class, self::$_tried)) {
            $options = self::$_map[$class];
            if (strtolower($options['type']) === 'file') {
                if (isset($options['file']) && file_exists($options['file'])) {
                    @(include $options['file']);
                }
                return class_exists($class);
            }
            self::$_tried[] = $class;
            return App::import(ucfirst($options['type']), $class);
        }
Example #2
0
<?php

App::import('Lib', 'Installer');
if (Installer::installed()) {
    Configure::write('DisableActions.install', '*');
}
App::import('Lib', 'CandyAutoLoader');
spl_autoload_register('CandyAutoLoader::load');
CandyAutoLoader::uses('Spyc', 'Vendor');
CandyAutoLoader::uses(App::objects('model'), 'Model');