public ClassEntity autoloadCall(String name, String lowerName) {
        synchronized (autoloadLocks) {
            // detect recursion in autoload
            if (StringUtils.isValidClassName(name) && autoloadLocks.add(lowerName)) {
                StringMemory tmp = new StringMemory(name);

                for (SplClassLoader loader : classLoaders) {
                    loader.load(tmp);

                    ClassEntity classEntity = fetchClass(name, false);

                    if (classEntity != null) {
                        autoloadLocks.remove(lowerName);
                        return classEntity;
                    }
                }

                if (defaultAutoLoader != null) {
                    defaultAutoLoader.load(tmp);
                }

                autoloadLocks.remove(lowerName);
                return fetchClass(name, false);
            } else {
                return null;
            }
        }
    }
Remove all method which does not destruct

@throws Throwable
jphp-runtime/src/php/runtime/env/Environment.java