public static function has_method_from($class, $method, $compclass)
    {
        $lClass = strtolower($class);
        $lMethod = strtolower($method);
        $lCompclass = strtolower($compclass);
        if (!isset(self::$_cache_methods[$lClass])) {
            self::$_cache_methods[$lClass] = array();
        }

        if (!array_key_exists($lMethod, self::$_cache_methods[$lClass])) {
            self::$_cache_methods[$lClass][$lMethod] = false;

            $classRef = new ReflectionClass($class);

            if ($classRef->hasMethod($method)) {
                $methodRef = $classRef->getMethod($method);
                self::$_cache_methods[$lClass][$lMethod] = $methodRef->getDeclaringClass()->getName();
            }
        }

        return strtolower(self::$_cache_methods[$lClass][$lMethod]) === $lCompclass;
    }