public static function getAutoloadLibFileWithPath($className)
    {
        if (!$className) {
            return;
        }
        
        // use class map first
        if (isset(self::$classMap[$className])) {
            return self::$classMap[$className];
        }

        // search it in cache first
        $cacheKey = $className . "_path";
        if (extension_loaded('apc') && ($filePath = apc_fetch($cacheKey)) != null) {
            return $filePath;
        }

        $filePath = self::getCoreLibFilePath($className);

        // cache it to save file search
        if ($filePath && extension_loaded('apc')) {
            apc_store($cacheKey, $filePath);
        }
        return $filePath;
    }