<?php

namespace Mall\Framework\Core;

class AutoLoad
{
    static function _autoLoad($class)
    {
        //var_dump($class);
        //xssCheck();

        if(function_exists('apcu_fetch') && ini_get('apc.enabled')){
            if ($file_path = apcu_fetch('autoload_'.PROJECT_DOMAIN.$class)) {
                loadFile($file_path);
                return true;
            }
        }

        $class_path = str_replace('\\', '/', $class) . '.Class.php';

        // util工具类特殊处理
        if(strpos($class_path, 'Util') === 0){
            $real_path = DS.$class_path;
        }else{
            $real_path = substr($class_path, strpos($class_path, '/'));
        }


        switch($real_path){
            case strpos($class_path, FRAMEWORK_NAME.'/') !== FALSE:
                $file_path = ROOT_PATH . $real_path;
                break;
            case strpos($class_path, 'Smarty') !== FALSE:
                return false;
                break;
            case strpos($class_path, 'Service') !== FALSE:
                if(!defined('SWOOLESERVER_NAME')){
                    throw new \Exception('请去swoole服务项目启动脚本配置服务目录名称,重启生效!!!');
                }
                $file_path = ROOT_PATH . DS . '..' . DS . SWOOLESERVER_NAME . $real_path;
                break;
            default:
                $file_path = PROJECT_PATH . $real_path;
        }

        if(function_exists('apcu_fetch') && ini_get('apc.enabled')){
            apcu_add('autoload_'.PROJECT_DOMAIN.$class, $file_path);
        }
        loadFile($file_path);
    }


}